میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

Adapter در اندروید

اندروید تعدادی adapter با پیاده سازی پیش فرض ارائه می دهد که مهم ترین و پرکاربردترین آن ها به شرح زیر می باشد ArrayAdapter و CursorAdapter.ArrayAdapter که زمانی استفاده  می شود که منبع داده ای آرایه باشد و دیگری java.util.List. SimpleCursorAdapter که می تواند به هنگام کار با داده های مستقر در دیتابیس مورد استفاده قرار گیرد (منبع داده ای یک cursor برای ردیف های دیتابیس باشد)

 


استفاده از ArrayAdapter

کلاس ArrayAdapter می تواند یک لیست یا آرایه ای از آبجکت های جاوا را به عنوان ورودی دریافت کند. هر آبجکت جاوایی به یک سطر نگاشت می شود. در واقع متد () toString را به ازای هر المان در آرایه صدا می زند و یک شی view می سازد و آن را در TextView قرار می دهد.

شما می توانید ID یا شناسه ی منحصربفرد view را در تابع سازنده ( )Constructor کلاس ArrayAdapter تعریف کنید. در غیر این صورت شناسه ی android.R.id.text1 به صورت پیش فرض مورد استفاده قرار می گیرد.

کلاس ArrayAdapter به شما این امکان را می دهد تمامی المان های موجود در منبع داده ( data structure ) را با فراخوانی متد () clear حذف نمایید. سپس شما می توانید به وسیله ی متد ()add المان های جدید و به وسیله ی () addAll یک Collection جدید اضافه نمایید.

این امکان نیز برای توسعه دهنده وجود دارد که محتوای منبع داده (برای مثال آرایه) را ویرایش نموده و سپس با فراخوانی متد () notifyDataSetChanged در adapter ، این آبجکت را از تغییرات در داده ها آگاه نمایید.

توجه: اگر می خواهید داده ها را در adapter خود تغییر دهید، در آن صورت منبع داده ی اصلی ( underlying data structure ) نیز باید این عملیات را پشتیبانی کند. برای مثال، کلاس ArrayList این امکان را به شما می دهد ولی این امر درمورد آرایه صادق نیست.

 


نمونه ی استفاده از ListView با ArrayAdapter

کد XML زیر، یک قطعه از فایل layout به نام  activity_listviewexampleactivity.xml را به نمایش می گذارد که کامپوننت رابط کاربری ListView را شامل می شود.

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listview"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

 

مثال زیر کاربرد آبجکت ListViewدر یک activity را به نمایش می گذارد. این مثال برای چیدمان و تنظیم ظاهر سطرها ( row layout) از یک layout پیش فرض و آماده ی محیط اندروید ( platform ) بهره می گیرد. علاوه بر آن مثال حاضر حذف آیتم ها از لیست را همراه با انیمیشن به نمایش می گذارد

 

package com.vogella.android.listview.withanimation;
public class ListViewExampleActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listviewexampleactivity);
final ListView listview = (ListView) findViewById(R.id.listview);
String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
"Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
"Linux", "OS/2", "Ubuntu", "Windows7", "Max OS X", "Linux",
"OS/2", "Ubuntu", "Windows7", "Max OS X", "Linux", "OS/2",
"Android", "iPhone", "WindowsMobile" };
final ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < values.length; ++i) {
list.add(values[i]);
}
final StableArrayAdapter adapter = new StableArrayAdapter(this,
android.R.layout.simple_list_item_1, list);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) {
final String item = (String) parent.getItemAtPosition(position);
view.animate().setDuration(2000).alpha(0)
.withEndAction(new Runnable() {
@Override
public void run() {
list.remove(item);
 adapter.notifyDataSetChanged();
view.setAlpha(1);
}
});
}
});
}
private class StableArrayAdapter extends ArrayAdapter<String> {
HashMap<String, Integer> mIdMap = new HashMap<String, Integer>();
public StableArrayAdapter(Context context, int textViewResourceId,
List<String> objects) {
super(context, textViewResourceId, objects);
for (int i = ۰; i < objects.size(); ++i) {
mIdMap.put(objects.get(i), i);
}
}
@Override
public long getItemId(int position) {
String item = getItem(position);
return mIdMap.get(item);
}
@Override
public boolean hasStableIds() {
return true;
}
}
}

 

 


امیدواریم آموزش Adapter در اندروید نیز برای شما مفید واقع شده باشد و ادامه آموزش برنامه نویسی اندروید رو دنبال کنید . برای مطالعه پست‌ها بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

 

 

 

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟