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

  1. Farzad Sarseifi

    Farzad Sarseifi

    مدیریت انجمن


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

      23

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

      1,577


  2. a.khosroabadi

    a.khosroabadi

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


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

      10

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

      84


  3. Omid Zakeri

    Omid Zakeri

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


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

      5

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

      16


  4. zahrabb

    zahrabb

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


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

      4

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

      2



Popular Content

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

  1. 6 likes

    نگارش 1.0.0

    389 دانلود

    سورس اندروید استودیو فروشگاه اینترنتی + وب سایت + وبسرویس زبان ها جاوا + php

    رایگان

  2. 4 likes
    آره والا دست این گوگل درد نکنه که همه جوره راحتمون کرده
  3. 2 likes
    کاربران گرامی انجمن برنامه نویسی اندروید پی سی دروید با درود چهار سالگی انجمن برنامه نویسی اندروید پی سی دروید مبارک باد همچنان که در طی سالیان گذشته در کنار ما بودید مبنی بر اینکه در روز 22 اسفند ماه که برابر است با چهار سالگی انجمن برنامه نویسی اندروید ، به پاس این روز نیک قصد داریم هدایایی را تقدیم کاربران انجمن پی سی دروید نماییم ،از این رو خوشحال میشویم شما در این روز با ما همراه باشید. خوشحال خواهیم نظرات خود را در مورد انجمن اندروید ایران با ما در میان بگذارید تا بتوانیم در سال جدید(۱۳۹۶) انجمنی پربارتر را داشته باشیم با احترام مدیر انجمن اندروید ایران (پی سی دروید) فرزاد سرسیفی
  4. 2 likes
    سلام دوست عزیز احتیاجی به متغییر نیست.دلیل این اتفاق این هستش که زمانی که شما بین تب ها جا به جا میشین فرگمنت ها به صورت کامل از بین نمیرن. برای این که شما جلو این تکرار رو بگیرین باید تو متد onCreateView یه شرط بزارین قبل از ساخت adapter تا چک کنید ببینید ازین فرگمنت دیتایی ساخته شده یا نه به این صورت تغییر بدین کدتونو if (savedInstanceState == null){ adapterCardView = new AdapterCardView(getActivity(),arrayList); loadDatabase(); }
  5. 2 likes
    سلام اگه ممکنه کدی که برای ساخت دیتابیس نوشتین بزارین تا رو کدتون توضیح بدیم. اگه از کلاس SqLiteOpenHelper یه کلاس ساخته باشین باید برای دیتابیستون یه ورژن گذاشته باشین.حالا اگه این ورژن تغییر بدین (مثلا 1 بوده الان بزارین 2) و اینو تو متد onUpgrade مشخص کنید. دیتابیستون اپدیت میشه.این یک نمونه از این کلاس هستش. public class MyDataBase extends SQLiteOpenHelper { public AquaPlantDataBase(Context context) { super(context, DBConstantManager.DATABASE_NAME.MY_DATABASE_NAME , null, DBConstantManager.DATABASE_VERSION.DB_VERSION); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL(DBConstantManager.TABLE_SCRIPT.T_FAVORITS); sqLiteDatabase.execSQL(DBConstantManager.TABLE_SCRIPT.T_FILTERCACHE); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) { } } اگه دقت کنید تو constructor یه ورژن دادم (آخرین پارامتر ورودی) وقتی دیتابیس شما ساخته میشه برای اولین بار این ورژن ثبت میشه و بعد از هر اپدیت برنامه این ورژن چک میشه در صورتی که ورژن جدید با قبلی یکی باشه تغییری انجام نمیشه ولی اگه این ورژن از قبلی یکی بیشتر باشه متد onupgrade صدا زده میشه و دیتابیستون اپدیت میشه.
  6. 1 like
  7. 1 like
    کاربران گرامی انجمن اندروید ایران با درود همانند روال سال های گذشته ، انجمن برنامه نویسی پی سی دروید اقدام به انتشار هدایای نوروزی نموده است ، امیدواریم هدایای این دوره عیدی خوبی برای کاربران گرامی انجمن باشد.پس در نوروز کنار ما باشید با تشکر انجمن اندروید ایران
  8. 1 like
  9. 1 like
    در این آموزش قصد داریم یک لیست از اطلاعات را با استفاده از RecyclerView ایجاد کنیم که سطرهای قابلیت انتخاب و تغییر شدن را داشته باشند Gradle compile 'com.android.support:recyclerview-v7:23.0.0' activity_recycle_view_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".RecycleViewMainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" /> </RelativeLayout> list_item_row.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/list_row" android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" android:orientation="vertical"> <LinearLayout android:id="@+id/linear" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/plantImageView" android:layout_width="100dp" android:layout_height="100dp" android:scaleType="fitXY" android:src="@mipmap/ic_launcher" /> <LinearLayout android:id="@+id/innerLayout" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="5dp" android:layout_weight="0.9" android:orientation="vertical"> <TextView android:id="@+id/personNameTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:fontFamily="sans-serif-light" android:singleLine="true" android:textColor="#5B5B5B" android:textSize="16dp" android:textStyle="bold" /> <TextView android:id="@+id/personDsgTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:fontFamily="sans-serif-light" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="#787878" /> <TextView android:id="@+id/personAddTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:fontFamily="sans-serif-light" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="#787878" /> </LinearLayout> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_below="@+id/linear" android:background="#787878" /> </RelativeLayout> RecycleViewMainActivity.java import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import java.util.ArrayList; public class RecycleViewMainActivity extends AppCompatActivity { private ArrayList<Person> mPersonList; private RecyclerView mRecyclerView; private CustomAdapter mAdapter; private RecyclerView.LayoutManager mLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recycle_view_main); mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view); // use this setting to improve performance if you know that changes // in content do not change the layout size of the RecyclerView mRecyclerView.setHasFixedSize(true); // use a linear layout manager mLayoutManager = new LinearLayoutManager(getApplicationContext()); mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.addOnItemTouchListener( new RecyclerItemClickListener(getApplicationContext(), new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { try { mAdapter.setSelected(position); } catch (Exception e) { e.printStackTrace(); } } }) ); setupPersonList(); } private void setupPersonList() { mPersonList = new ArrayList<Person>(); mPersonList.clear(); for (int i = 0; i < 25; i++) { Person person = new Person("Person " + i, "Desgination " + i, "Address " + i); mPersonList.add(person); } mAdapter = new CustomAdapter(mPersonList, this); mRecyclerView.setAdapter(mAdapter); } } RecyclerItemClickListener.java import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener { private OnItemClickListener mListener; public interface OnItemClickListener { public void onItemClick(View view, int position); } GestureDetector mGestureDetector; public RecyclerItemClickListener(Context context, OnItemClickListener listener) { mListener = listener; mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { return true; } }); } @Override public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) { View childView = view.findChildViewUnder(e.getX(), e.getY()); if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) { mListener.onItemClick(childView, view.getChildPosition(childView)); return true; } return false; } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } @Override public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { } } CustomAdapter.java import android.content.Context; import android.content.SharedPreferences; import android.graphics.Color; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.RelativeLayout; import android.widget.TextView; import java.util.ArrayList; public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> { private ArrayList<Person> mPersonList; private SharedPreferences mPref; private SharedPreferences.Editor mEditor; // Provide a reference to the views for each data item // Complex data items may need more than one view per item, and // you provide access to all the views for a data item in a view holder public class ViewHolder extends RecyclerView.ViewHolder { // each data item is just a string in this case TextView personNameTextView, personAddTextView, personDsgTextView; RelativeLayout list_row; public ViewHolder(View v) { super(v); personNameTextView = (TextView) v.findViewById(R.id.personNameTextView); personAddTextView = (TextView) v.findViewById(R.id.personAddTextView); personDsgTextView = (TextView) v.findViewById(R.id.personDsgTextView); list_row = (RelativeLayout) v.findViewById(R.id.list_row); } } public void add(int position, Person item) { mPersonList.add(position, item); notifyItemInserted(position); } public void remove(String item) { int position = mPersonList.indexOf(item); mPersonList.remove(position); notifyItemRemoved(position); } // Provide a suitable constructor (depends on the kind of dataset) public CustomAdapter(ArrayList<Person> personList, Context context) { mPersonList = personList; mPref = context.getSharedPreferences("person", Context.MODE_PRIVATE); mEditor = mPref.edit(); } // Create new views (invoked by the layout manager) @Override public CustomAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new view View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_row, parent, false); // set the view's size, margins, paddings and layout parameters ViewHolder vh = new ViewHolder(v); return vh; } // Replace the contents of a view (invoked by the layout manager) @Override public void onBindViewHolder(ViewHolder holder, int position) { // - get element from your dataset at this position // - replace the contents of the view with that element holder.personNameTextView.setText(mPersonList.get(position).getPersonName()); holder.personAddTextView.setText(mPersonList.get(position).getPersonAdd()); holder.personDsgTextView.setText(mPersonList.get(position).getPersonDsg()); Log.e("selection", "" + mPersonList.get(position).isSelected()); if (mPersonList.get(position).isSelected()) { holder.list_row.setBackgroundColor(Color.parseColor("#d5d5d5")); } else { holder.list_row.setBackgroundColor(Color.TRANSPARENT); } } public void setSelected(int pos) { try { if (mPersonList.size() > 1) { mPersonList.get(mPref.getInt("position", 0)).setSelected(false); mEditor.putInt("position", pos); mEditor.commit(); } mPersonList.get(pos).setSelected(true); notifyDataSetChanged(); } catch (Exception e) { e.printStackTrace(); } } // Return the size of your dataset (invoked by the layout manager) @Override public int getItemCount() { return mPersonList.size(); } } Person.java public class Person { String personName; String personAdd; String personDsg; boolean selected; Person(String name, String dsg, String add) { this.personName = name; this.personAdd = add; this.personDsg = dsg; } public boolean isSelected() { return selected; } public void setSelected(boolean selected) { this.selected = selected; } public String getPersonDsg() { return personDsg; } public void setPersonDsg(String personDsg) { this.personDsg = personDsg; } public String getPersonAdd() { return personAdd; } public void setPersonAdd(String personAdd) { this.personAdd = personAdd; } public String getPersonName() { return personName; } public void setPersonName(String personName) { this.personName = personName; } }
  10. 1 like
    چرا نوشتید context.getApplicationContext ؟؟
  11. 1 like
    سلام به تمام کاربران عزیز پوستر تبریک سال نو برای عکس پروفایل یا شبکه های اجتماعی آماده دانلود می باشد تبریک سال نو برای شما عزیزان ایشالله ساله خوبی رو داشته باشید . دستون دارم
  12. 1 like
    Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); view.setImageBitmap(bitmap);
  13. 1 like
    باید بصورت blob ذخیره کنید تصویر رو توی دیتابیس sqlite اندروید public class DatabaseHelper extends SQLiteOpenHelper { // Database Version private static final int DATABASE_VERSION = 1; // Database Name private static final String DATABASE_NAME = "database_name"; // Table Names private static final String DB_TABLE = "table_image"; // column names private static final String KEY_NAME = "image_name"; private static final String KEY_IMAGE = "image_data"; // Table create statement private static final String CREATE_TABLE_IMAGE = "CREATE TABLE " + DB_TABLE + "("+ KEY_NAME + " TEXT," + KEY_IMAGE + " BLOB);"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // creating table db.execSQL(CREATE_TABLE_IMAGE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // on upgrade drop older tables db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE); // create new table onCreate(db); } } و ذخیره تصویر : public void addEntry( String name, byte[] image) throws SQLiteException{ SQLiteDatabase database = this.getWritableDatabase(); ContentValues cv = new ContentValues(); cv.put(KEY_NAME, name); cv.put(KEY_IMAGE, image); database.insert( DB_TABLE, null, cv ); } بازیابی تصویر: byte[] image = cursor.getBlob(1); این کلاس هم میتواند به شما میتواند کمک کند public class DbBitmapUtility { // convert from bitmap to byte array public static byte[] getBytes(Bitmap bitmap) { ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.PNG, 0, stream); return stream.toByteArray(); } // convert from byte array to bitmap public static Bitmap getImage(byte[] image) { return BitmapFactory.decodeByteArray(image, 0, image.length); } }
  14. 1 like
    کد کلاستون رو بزارید ؟
  15. 1 like
    این مسیر : data/data/YOURPACKAGENAME/databases
  16. 1 like
    جاوا هستش یا اندروید ؟
  17. 1 like
  18. 1 like
    سلام خیلی ممنون مشکل حل شد!
  19. 1 like
    بنده تو کلاس های اموزشی که برگذار میکنم این موارد رو کامل اموزش میدهم. امشب براتون بررسی میکنم و ویدیو رو تو انجمن میگزارم
  20. 1 like
    اسم فایل amir.java رو همون Welcome قرار دهید
  21. 1 like
    سلام تو متد onCreateView تو فرگمنت هاتون قبل از کد زیر AdapterCardView adapterCardView=new AdapterCardView(getContext(),arrayList); اینو بزارین ببینین چی میشه arrayList.clear();
  22. 1 like
    مشاهده فایل E-commerce_App.rar اپلیکیشن فروشگاه انروید ارسال کننده Omid Zakeri ارسال ۱۷/۰۳/۱۲ دسته سورس پروژه اندروید  
  23. 1 like

    نگارش 1.0.0

    48 دانلود

    سورس اپلیکیشن فروشگاه اندروید

    رایگان

  24. 1 like

    نگارش 1.0.0

    11 دانلود

    اپلیکیشن ویرایش تصاویر

    رایگان

  25. 1 like
    مشاهده فایل Photo_Editor.rar اپلیکیشن ویرایش تصاویر ارسال کننده Omid Zakeri ارسال ۱۷/۰۳/۱۲ دسته سورس پروژه اندروید  
  26. 1 like

    نگارش 1.0.0

    68 دانلود

    اپلیکیشن انتخاب مسیر و طول مسیر.

    رایگان

  27. 1 like
    مرسی از راهنماییتون مشکلم حل شد.ممنونم
  28. 1 like
    سلام دوست عزیز ببخشید با تاخیر جواب میدم اگه ممکنه کد اکتیویتی که این fragment ها (تب ها) رو توش لود میکنید و همینطور کد AdapterCardView بزارین.
  29. 1 like
    خیلی خوش حالم که چهار ساله در کنار شما استاد هستیم و در حال کسب تجربه های با ارزش ارادتمند استاد - محمدعلی میرحامد
  30. 1 like
    شما کتابخانه com.android.support.appcompat-v7:25.0.0 رو ندارید ، مجبورید Gradle رو آنلاین کنید و با وی پی ان کتابخانه رو دانلود کنید
  31. 1 like
    سلام بنده تو نسخه قبلی انجمن؛ اسمم آقا محمد حسین خان آشناد بودو اگر کسی منو بشناسه با این اسم میشناسه یه روز اومدم سر بزنم به پی سی دیروید دیدم دستخوش کلی تحولات شده و انگار ظاهرا اسکریپت IPS نصب کردن آقای سرسیفی و مجبور شدم دوباره ثبت نام کنم (نا گفته نمونه حال نداشتم فرم پر کنم یهویی با گوگل وارد شدم) ... حالا از حاشیه که بگذریم می رسیم به اصل مطلب! بچه های پی سی دیروید یه رسم قشنگی داشتن... اسمشو نمیدونم ولی میدونم نزدیک عید یا توی خوده عید یه سری آموزش میساختن (خودشون ظبط میکردن یا می نوشتن) و به عنوان عیدی به رایگان منتشر میکردن تو انجمن که پارسال منم این افتخار نصیبم شد چند تا عیدی خیلی کوچیک منتشر کنم واسه کاربرا. لطفا عیدی های خودتون رو توی همین تاپیک بفرستین لطفا برداشت بد هم نکنید از این متن (سوالی هم داشتین پیام خصوصی بفرستین برای من.). عیدی های خوبی هم خودم براتون حاضر کردم که به امید خدا لحظه ی تحویل سال منتشر میکنم تو همین تاپیک. دوستدار همگی - محمد حسین آشناد
  32. 1 like
    جمله ی بی گدار به آب نزن اینجا کاربرد داره خودم یهو وارد بحث توسعه اندروید شدم و الان بعد از چند سال تازه دارم میفهمم از راه اشتباهی اومدم. شما اول توی جاوا یکم مهارت کسب کنین. Eclipse for Java ee و JDK رو نصب کنین و آموزش های توی اینترنت رو ببینید و بخونید و همون موقع عملی تمرین کنین. بعد از چند ماه هم که به نظرتون ایدعولوژی یک برنامه نویس رو بدست آوردین اندروید استودیو نصب کنین و آموزش های توسعه اندروید رو مثل جاوا ببینید این وب سایت به عنوان منبع آموزشی خیلی خوب عمل کرده : https://www.tutorialspoint.com/tutorialslibrary.htm
  33. 1 like
  34. 1 like
    Intent i = getBaseContext().getPackageManager() .getLaunchIntentForPackage( getBaseContext().getPackageName() ); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i);
  35. 1 like
    مشکلی از رو نمیبینم.مطمین هستید که خطا از sharedPrefrences هستش.چون کدتون ظاهرا مشکلی نداره و درسته
  36. 1 like
    آدرست غلطه.باید بنویسی: C:\Users\Pc name\AppData\Local\Android\android-sdk به جای pc name اسم کامپیوترتو بنویسی
  37. 1 like
    هووووورا.درست شد😊 ممنونم که کمکم کردین😁
  38. 1 like
    شما این کارو باید انجام بدین fina Recycler_View_Adapter mAdapter = new Recycler_View_Adapter(data1); rc.setAdapter(mAdaper); و تو متد onClick هم به این صورت عمل کنید mAdapter.add(data);
  39. 1 like
    مشکل پیدا شد شما داری در ابتدا یه adabter میسازی و به recycler View ست میکنی تو این خط rc.setAdapter(new Recycler_View_Adapter(data1)); و تو متد onClick دوباره دارین یک adabter دیگه میسازین و متد add رو صدا میزنید؟ خوب مشخصه این یه ابجکت جدید هستش و شما به اون اضافه میکنید. شما باید متد add همون adaptere اولیو صدا بزنید.
  40. 1 like
    ببینید متد notifyAll که تو کلاس های جاوا هستش برای این نیست که شما به main thread بگید که ui رو اپدیت کنه چون تعریف و کارایش متفاوت هست بعضی زمانها شما همه thread هایی که دارین تو حالت wait نگه میدارین تا یه کاری توسط یه thread انجام بشه.حالا برای اینکه این theard های wait شده به اصطلاح بیدار کنید از متد notifyAll استفاده میکنید.ولی اینجا ما هیچ thread نداریم که wait باشه. شما باید به خود adapter اطلاع بدین که یک ایتم به لیستتون اضافه شده که اینکارو میتونید به وسیله متد notifyItemInserted() انجام بدین این متد یه ورودی میگیره که میشه ایندکس ایتم جدید شما تو لیست. و این قسمت هم productBeanList.size() - 1 مکان ایتم جدید رو تو ادپتر مشخص میکنه یعنی میگم به انتهای لیست اضافه کنه.اگه مثلا 0 بزارین ایتم های جدید اول میاره. حالا شما باید یه متد add مثل این تو کلاس adapter که ساختین بزارین ورودیش میشه object شما و اونو به لیست اضافه میکنه و به متد بالا هم به adapter اطلاع میدید که یک ایتم جدید اضافه شده و باید خودشو اپدیت کنه. حالا شما به جای اینکه یک ایتم به لیستتون اضافه کنید میاید این متد از adapter صدا میزنید و ابجکت رو بهش پاس میدین.
  41. 1 like
    مشکل تو این متد notifyAll هستش. چیزی که من از قطعه کد های شما متوجه شدم اینه که دارین تو اکتیویتی یه ایتم به لیستتون اضافه میکنید درسته؟ برای اینکار میتونستین دوتا کار انجام بدین اول اینکه یه متد برای اضافه کردن ایتم تو اداپترتون میزاشتین و به لیستتون اضافه میکردین به این صورت public void add(ProductBean.Product productBean){ productBeanList.add(productBean); notifyItemInserted(productBeanList.size() - 1); } و دیگه اینجوری تو اکتیویتی به لیست اضافه نمیکردین احتیاجی هم به متد notifyAll نیستش.
  42. 1 like
    این رو فک کنم خودشون نوشتن. شما هم میتونید یک لایوت بزارید که کد رنگی alpha رو داشته باشه
  43. 1 like
    DraweLayout خودتون رو . initalize نکرده اید. find view by id
  44. 1 like
    برنامه رو ریستارت کردم یه اروری داشت اوکیش کردم دوباره ریستارت شد و درست شد
  45. 1 like
    آقا ممنون درست شد مشکل از عکساش بود
  46. 1 like
    این خطا برای این میباشد شما sdk 22 رو ندارید. دو راه دارید sdk 22 رو دانلود کنید باید تنظیمات sdk پروژه خودتون رو در فایل build.gradle تغییر دهید
  47. 1 like
    سلام مشکلتون رو مهندس سرسیفی رفع کردند یک نکته ای هم من بگم برای دوستانی که تازه میخوان شروع کنند بهترین کار این هستش شما تمامی متن های فارسی را درون فایل String ذخیره کنید و توی کد های جاوا به وسیله متد getString فراخوانی کنید که توی متد گت استرینگ به وسیله R.string.idstring متن گرفته میشه دلیلش چیه یک این که بهتر می توانید مدیریت کنید دوم بهم ریختگی اصلا توش به وجود نمیاد سوم اگر خواستید برنامه ای چند زبانه بنویسید خیلی راحت میتوانید این کار انجام دهید نکته دوم این هستش که اگر میخواهید متنی را از داخل یک تکست ویو یا ادیت تکست بخوانید باید حتما علاوه بر getText بعد از اون toString به کار ببرید. موفق باشید
  48. 1 like
    همه اینا رایگان بصورت فیلم با آموزش کامل موجوده تو اینترنت یکم جستجو کنید پول علکی ندید دوست گرامی این آموزش ها برای چند سال پیش جدود سال 90 یا 91 میشد 1 ملیون الان رایگانه رایگان!!!!!! یکم سرچ کن یوتیوب رو داری شما گوگل رو داری استکفلو رو داری لیندا رو داری فارسی هم کلی هست سرچ کن پول علکی نده خودت بشین بخون. (البته سوء تفاهم نشه برای برگزار کنندگان آموزشگاه اندروید چون واقعا" همه موزش ها رایگان پیدا میشه) موفق باشید
  49. 1 like
    سلام Recyclerview خودش یک متد داره برای Loadmore !! اون رو اجرا میکنی ! اطلاعاتی که از وب میگیری رو باید طوری درست کنی که مثلا 50 تا 50 تا بگیری ! بعد داخل loadmore صدا بزنی . اگر طراحی وب سرویس رو restful کار کنی ! راحت تر میشه کارت . موفق باشید
  50. 1 like
    http://www.androidhive.info/2015/05/android-swipe-down-to-refresh-listview-tutorial/ http://androidsrc.net/android-pull-refresh-view-using-swiperefreshlayout/ https://android-arsenal.com/details/1/377 به این قابلیت میگن pull to refresh حالا یا pull down یا pull up http://sapandiwakar.in/pull-to-refresh-for-android-recyclerview-or-any-other-vertically-scrolling-view/