انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ارسال ArrayList به Base Adapter (در اندروید)

ارسال ArrayList به Base Adapter (در اندروید)

#1
باسلام
در برنامه‌ی من یک لیست ویو وجود دارد که باید برای هر آیتم آن مقداری در دیتابیس جستجو شود و نمایش داده شود اما این کار باعث وجود کمی کندی در اسکرول کردن صفحه می‌شود. من برای روان‌تر کردن سرعت برنامه می‌خواهم قبل از ساخته شدن آیتم‌ها مقدار را فراخوانی و آن را به شکل یک ArrayList به  Adapter بفرستم. چگونه می‌توانم این کار را انجام دهم؟
پاسخ

ارسال ArrayList به Base Adapter (در اندروید)

#2
سلام.
فکر می کنم موضوع زیر کمکتون کنه :

http://www.kelidestan.com/forum/showthread.php?tid=4929


 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط ramtin2080

ارسال ArrayList به Base Adapter (در اندروید)

#3
من با SharedPreferences توانستم ArrayList به Base Adapter انتقال دهم.
1.ایتدا در کلاس PreferenceActivity کد زیر را نوشتم:

کد پی‌اچ‌پی:
String Array= prefs.getString("array_name",""); 

2.سپس در یک کلاس با نام SaveArrayList توابع زیر را قرار دادم:

کد پی‌اچ‌پی:
public boolean saveArray(String array, String arrayNameContext mContext) { 
       
SharedPreferences prefs mContext.getSharedPreferences("array_name"0);
       
SharedPreferences.Editor editor prefs.edit();
       
editor.putInt(arrayName +"_size", array.length);
       for(
int i=0;i<array.length;i++)
         
editor.putString(arrayName "_" i, array);
       return 
editor.commit();
     }
   public 
String loadArray(String arrayNameContext mContext) {
       
SharedPreferences prefs mContext.getSharedPreferences("array_name"0);
       
int size prefs.getInt(arrayName "_size"0);
       
String array = new String;
       for(
int i=0;i<size;i++)
         array = 
prefs.getString(arrayName "_" inull);
       return array;
     } 


3.حال برای ذخیره ArrayList در کلاس مورد نظر قبل از onCreate عبارت زیر را نوشتم:

کد پی‌اچ‌پی:
SaveArrayList SaveArrayList = new SaveArrayList(); 


4.سپس در یک متد (مثلا onCreate) کد زیر را قرار دادم:

کد پی‌اچ‌پی:
ArrayList<String> Array = new ArrayList<String>;();
//باید به String Array نبدیل شود
String arr = Array.toArray(new String[َArray.size()]);
//به جای
//array_name
//نامی را که قبلا در کلاس 
//SharedPreferences
//قرار دادید جایگزین شود
SaveArrayList.saveArray(arr"array_name",this); 

5.برای فراخوانی داده‌ها نیز به شکل زیر در کلاس Base Adapter عمل می‌کنیم (مرحله 3 دوباره برای شناساندن کلاس SaveArrayList تکرار شود):

کد پی‌اچ‌پی:
String cmSaveArrayList.loadArray("array_name"this.context);
String array_value cm[position]; 
پاسخ
 سپاس شده توسط admin ، Java_man ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان