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

  1. Behrad Ravanbod

    Behrad Ravanbod

    توسعه دهنده اندروید


    • امتیاز: پسندیدن (Likes)

      8

    • تعداد ارسال ها

      6


  2. Farzad Sarseifi

    Farzad Sarseifi

    مدیریت انجمن


    • امتیاز: پسندیدن (Likes)

      4

    • تعداد ارسال ها

      1,336


  3. a.khosroabadi

    a.khosroabadi

    توسعه دهنده اندروید


    • امتیاز: پسندیدن (Likes)

      2

    • تعداد ارسال ها

      52


  4. Fly Togoal

    Fly Togoal

    توسعه دهنده اندروید


    • امتیاز: پسندیدن (Likes)

      1

    • تعداد ارسال ها

      15



Popular Content

Showing most liked content since ۱۷/۰۱/۱۳ in all areas

  1. سلام حتما از اسم موضوع تعجب کردید ! ولی باید بگم چاقوی کره خوری یه کتاب خونه هست واسه برنامه نویسی اندروید که یه قسمتی رو که حتما تا حالا خستتون کرده رو تفاوت توش ایجاد کرده FindViewById حتما این قسمت میدونید دیگه واسه تعریف ویجت هاست در کد Java حالا با این کتابخونه ما این قسمتو توش تغییر ایجاد میکنیم دیگه جا نوشتن FindViewById مینویسیم @BindView(R.id.user) EditText username; خوب حالا بریم سراغ آموزش اول این کتابخونه رو اضافه کنید به پروژتون dependencies { compile 'com.jakewharton:butterknife:8.4.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0' } حالا سینک کنید پروژه رو و برید یه ویجت بذارید تو فایل XML بیاید تو کد جاوا و مثلا اینو بنویسید در زیر کلاس اصلیتون(توی توابع ننویسید.جایی بذارید همه جا در دسترس باشه) که کد در کل به این حالت در بیاد class ExampleActivity extends Activity { @BindView(R.id.user) EditText username; @BindView(R.id.pass) EditText password; @BindString(R.string.login_error) String loginErrorMessage; @OnClick(R.id.submit) void submit() { // TODO call server... } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_activity); ButterKnife.bind(this); // TODO Use fields... } } توجه کنید کد ButterKnife.bind(this); فراموش نشه که بذاریدش تو تابع onCreate دوستان لینک کامل آموزش خودشم اینجاس ببخشید یکم سر سری توضیح دادم
    3 likes
  2. سلام امروز میخوایم کار با کتابخونه volley رو با هم یاد بگیریم.با افزودن این کتابخونه میتونید ارتباط با کد php که در سرورتون نوشتید رو سریع تر و آسون تر کنید. به این صورت که اول با این کد به پروژه خودتون اضافش کنید. compile 'com.mcxiaoke.volley:library:1.0.19' اگه مشکلی در اضافه کردن این کتابخونه دارید کلیک کنید. خب بریم سراغ کد نویسی کد های زیرو بذارید اونجایی که قراره ارتباط بر قرار شه RequestQueue queue= Volley.newRequestQueue(this); StringRequest myRequest=new StringRequest(Request.Method.POST, "My link", new Response.Listener<String>() { @Override public void onResponse(String response) { Toast.makeText(LogReg.this, response, Toast.LENGTH_SHORT).show(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(LogReg.this, "خطا در ارتباط با سرور", Toast.LENGTH_SHORT).show(); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String , String> params = new HashMap<>(); params.put("username", "My Username"); params.put("password","My Password"); return params; } }; queue.add(myRequest); توضیحات: اولا که اونجایی که نوشتم Request.Method.POST در حقیقت داریم متد ارسال اطلاعات به فایل رابطمون رو تعیین میکنیم.قسمت mylink هم لینک فایل رو قرار میدید.تابع onResponse در صورت موفقیت آمیز بودن اجرا میشه و متن بازگشتی داخل متغیر response هست همچنین در صورتی که مشکل باشه تابع onErrorResponse اجرا میشه که با دستور error.tostring() به متن خطا دسترسی خواهید داشت.دو کد params.put هم مقادیرو ارسال میکنن(پارامتر اول اسم متغیر و دومی هم مقدار) و کد آخر هم در حقیقت درخواست ما که اسمش myRequest هستو تو صف ارسال (queue) قرار میده. تمام
    2 likes
  3. راحت نسخه android studio باندل رو بگیرید از ایکلیپس خیلی بهتره http://p30download.com/fa/entry/45668/ نسخه با SDK که حجمش 1.6 گیگ هست رو بگیرید
    1 like
  4. به نظر من یه راه خیلی سادش اینه یه متغیر boolean تعریف کنید وقتی dot وارد کرد true بشه و توی آنکلیک دکمه dot شرط انجام دستورات رو false بودن متغیر ها بذارید. در صورتی که قرار هست اون dot پاک بشه،میتونید تو textChange اون editText یه کد بنویسید چک کنه ببینه الان dot پاک شد؟؟پس متغیر رو false کن
    1 like
  5. با سلام در این آموزش قصد دارم کار با 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
  6. 1 like
  7. سلام خدمت همه ی دوستان ارجمند عرض میکنم که بعلت مشکلی که برای دستم پیش آمد تصمیم گرفتم که سورس کد برنامه پیشرفته دیکشنری هوشمند و صوتی بوشلامبو که در اکثر مارکت های ایرانی هم موجود هست (بازار و...) را برای شما بگذارم تا بقیه راه را شما ادامه بدهید. دانلود از گیت هاب هرگونه سوالی داشتید در خدمتم.
    1 like
  8. 1 like
  9. سلام از این کد استفاده کنید : import android.app.Activity; import android.content.res.Configuration; import android.os.Bundle; public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String languageToLoad = "fa"; // your language Locale locale = new Locale(languageToLoad); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); this.setContentView(R.layout.main); } }
    1 like
    با سلام این سورس شما بسیار ظاهر ساده و ابتدایی دارد. خودتون حاظر بودید همچین برنامه ایی رو بخرید که ابتدایی ترین چیزهارو رعایت نکرده .!؟
    1 like
  10. سلام دوست عزیز اگه انتهای هر خطی که تو دیتابیس دارین اینتر خرده باشه و به خط بعد رفته باشه برای مشخص شدن خط جدید یه کاراکتر '\n' زده میشه شما میتونید رشته ای که از دیتابیس میگیرین رو این کاراکتر split کنید به این صورت String[] splitedString = YOURSTRING.split("\\r?\\n"); یا از این متد استفاده کنید String[] splitedString = YOURSTRING.split("\\r\\n|\\n|\\r"); اینجوری شما یه ارایه دارین که میتونید ایندکس های فرد چپ چین کنید و ایندکس های زوج راست چین.
    1 like
  11. این خطا برای این میباشد که کتابخانه appcompatV7 ناقص میباشد و وقتی این کتابخونه به پروژه شما اضافه شده است یک علامت تعجب روی پروژه شما قرار گرفته است. بهترین کار اینه به اندروید استودیو مهاجرت کنید چونکه دیگه اکلیپس پشتیبانی نمیشه
    1 like
  12. مرسی خسته نباشید موفق باشید
    1 like
  13. این آموزش رو ببینید: http://p30droid.com/topic/425-ساخت-صفحه-شفاف-در-اندروید/
    1 like
  14. سلام دوست عزیز میتونید از این دو سایت استفاده کنید http://www.vogella.com/tutorials/AndroidSQLite/article.html http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/
    1 like
  15. سلام به همه دوستان وقتی داشتم به اندروید استودیو عادت میکردم بعد از ایکلیپس،فهمیدم این افزودن کتابخانه ها یه خورده دردسر داره.ارور میده و اینا حالا میخوایم با هم تمرینی یه کتابخونه رو اضافه کنیم به پروژمون خب مثلا من از این لینک میخوام یه کتابخونه اضافه کنم.برای همین کتابخونه Material Dialog رو انتخاب کردم.(خودم هنوز باهاش کار نکردم همینطوری شانسی پیدا کردمش) https://github.com/afollestad/material-dialogs خب بعد اینکه رفتید اینجا بهتون میگه چطور باید کتابخونه رو اضافه کنیم.بعضیا مثل این افزودنشون دردسر زیادی نداره! پس همین طور که گفته این عبارت رو که مربوط به همین هست کپی میکنیم و میریم سراغ پروژمون تو اندروید استودیو compile 'com.afollestad.material-dialogs:commons:0.9.2.3' حالا!از سمت چپ صفحه تب Project اگر بسته هست بازش میکنیم.فایل های پروژمون اینجاست حالا دقت کنید یه پوشه app هست که خود پروژس ما باش کاری نداریم پایینش یه گزینس نوشته Gradle Scripts.کلیک میکنیم تا توسعه پیدا کنه(یعنی باز شه زیر گزینه هاشو ببینیم) حالا ما با فایل build.gradle رو باز میکنیم.توجه کنید دوتا ازش هست که ما نسخه Module رو میخوایم.(build.gradle (module:app)) بازش میکنیم یه سری کد واسه ما میاد که یه سری از اطلاعات اپلیکیشنمون اینجاس حالا میگردیم دنبال کدی که نوشته باشه dependencies ، هرچی کتابخونه تو پروژه ما باشه اینجا کدش موجوده.حالا همون کدی که کپی کردیمو میذاریم اینجا(دقت کنید قبلی ها پاک نشن فقط در یک لاین جدید اینو کپی کنید) حالا بالای صفحه یه گزینه اومده نوشته sync now که البته قبل اینکه این گزینه رو بزنید باید یه شیلترفکن روشن کنید ترجیحا kerio چون من با این رایگانا تست کردم نشد(البته بعضی دوستان میگن میشه باز حالا خودتون میدونید) حالا sync now رو بزنید تا فایلای کتابخونه به پروژتون افزوده بشه
    1 like
    با سلام 54 مگ گذاشتین برای دانلود ولی هنگام extract کردن faild میده !!!!
    1 like
  16. یک کلاس ایجاد کنید برای اینکه بتوانید روی 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