برترین های انجمن


Popular Content

Showing most liked content on ۱۷/۰۱/۲۰ in all areas

  1. راحت نسخه android studio باندل رو بگیرید از ایکلیپس خیلی بهتره http://p30download.com/fa/entry/45668/ نسخه با SDK که حجمش 1.6 گیگ هست رو بگیرید
    1 like
  2. به نظر من یه راه خیلی سادش اینه یه متغیر boolean تعریف کنید وقتی dot وارد کرد true بشه و توی آنکلیک دکمه dot شرط انجام دستورات رو false بودن متغیر ها بذارید. در صورتی که قرار هست اون dot پاک بشه،میتونید تو textChange اون editText یه کد بنویسید چک کنه ببینه الان dot پاک شد؟؟پس متغیر رو false کن
    1 like
  3. با سلام در این آموزش قصد دارم کار با BroadcastReceiver رو به دوستان در یک پروژه دریافت تماس آموش بدم چون کد های پیچیده ای نداشت به صورت فیلم آموزش ندادم. ابتدا شما باید یک کلاس جاوا در پکیج خود ایجاد کنید حالا اسمش هر چی میخواید بزارید ولی حتما باید از نوع BroadcastReceiver باشد. کتاب خانه های که لازم هستش در پروژه فراخوانی شوند . import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telephony.TelephonyManager; import android.widget.Toast; کد های کلاس public class PhoneStateReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { try { String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE); String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); if(state.equals(TelephonyManager.EXTRA_STATE_RINGING)){ Toast.makeText(context,"دریافت تماس",Toast.LENGTH_SHORT).show(); Toast.makeText(context,"شماره -"+incomingNumber,Toast.LENGTH_SHORT).show(); } if ((state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK))){ Toast.makeText(context,"وضعیت تماس",Toast.LENGTH_SHORT).show(); } if (state.equals(TelephonyManager.EXTRA_STATE_IDLE)){ Toast.makeText(context,"رد یا قطع تماس",Toast.LENGTH_SHORT).show(); } } catch (Exception e){ e.printStackTrace(); } } } در اینجا وقتی موردی در گوشی رخ دهد تماسی دریافت شود یا پیامی به گوشی ارسال شود به وسیله onReceive این مورد برسی میشود از برود کست میتوان برای کار های هم چون برسیوضعیت باتری نیزاستفاده کرد
    1 like
  4. یک کلاس ایجاد کنید برای اینکه بتوانید روی EditTextکاری کنید فقط یبار دات لود شود : public class DecimalTextWatcher implements TextWatcher { private NumberFormat numberFormat = NumberFormat.getNumberInstance(); private EditText editText; private String temp = ""; private int moveCaretTo; private int integerConstraint; private int fractionConstraint; private int maxLength; /** * Add a text watcher to Edit text for decimal formats * * @param editText * EditText to add DecimalTextWatcher * @param before * digits before decimal point * @param after * digits after decimal point */ public DecimalTextWatcher(EditText editText, int before, int after) { this.editText = editText; this.integerConstraint = before; this.fractionConstraint = after; this.maxLength = before + after + 1; numberFormat.setMaximumIntegerDigits(integerConstraint); numberFormat.setMaximumFractionDigits(fractionConstraint); numberFormat.setRoundingMode(RoundingMode.DOWN); numberFormat.setGroupingUsed(false); } private int countOccurrences(String str, char c) { int count = 0; for (int i = 0; i < str.length(); i++) { if (str.charAt(i) == c) { count++; } } return count; } @Override public void afterTextChanged(Editable s) { // remove to prevent StackOverFlowException editText.removeTextChangedListener(this); String ss = s.toString(); int len = ss.length(); int dots = countOccurrences(ss, '.'); boolean shouldParse = dots <= 1 && (dots == 0 ? len != (integerConstraint + 1) : len < (maxLength + 1)); boolean x = false; if (dots == 1) { int indexOf = ss.indexOf('.'); try { if (ss.charAt(indexOf + 1) == '0') { shouldParse = false; x = true; if (ss.substring(indexOf).length() > 2) { shouldParse = true; x = false; } } } catch (Exception ex) { } } if (shouldParse) { if (len > 1 && ss.lastIndexOf(".") != len - 1) { try { Double d = Double.parseDouble(ss); if (d != null) { editText.setText(numberFormat.format(d)); } } catch (NumberFormatException e) { } } } else { if (x) { editText.setText(ss); } else { editText.setText(temp); } } editText.addTextChangedListener(this); // reset listener // tried to fix caret positioning after key type: if (editText.getText().toString().length() > 0) { if (dots == 0 && len >= integerConstraint && moveCaretTo > integerConstraint) { moveCaretTo = integerConstraint; } else if (dots > 0 && len >= (maxLength) && moveCaretTo > (maxLength)) { moveCaretTo = maxLength; } try { editText.setSelection(editText.getText().toString().length()); // et.setSelection(moveCaretTo); <- almost had it :)) } catch (Exception e) { } } } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { moveCaretTo = editText.getSelectionEnd(); temp = s.toString(); } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { int length = editText.getText().toString().length(); if (length > 0) { moveCaretTo = start + count - before; } } } فراخوانی : itemCostEditText.addTextChangedListener(new DecimalTextWatcher(itemCostEditText, 6, 2));
    1 like