ساخت ListView در آندروید با کلاس ListActivity
کامپوننت ListView در آندروید برای نمایش داده ها به صورت یک لیست استفاده می شود. این لیست می تواند در مدل ساده خود فقط شامل متن و یا در مدل پیشرفته و سفارشی شامل چندین متن و تصویر باشد. در این پست مدل متنی آن با استفاده از بسط کلاس ListActivity پیاده سازی می شود.
ابتدا پروژه ای جدید با نام ListActivityTest ایجاد کنید.
فایل MainActivity.java را باز کرده و اعلان کلاس را به صورت زیر تغییر دهید. یعنی کلاس ما این بار کلاس ListActivity را به جای کلاس Activity بسط می دهد :
public class MainActivity extends ListActivity{
}
به دلیل استفاده از کلاس ListActivity دیگر نیازی به اضافه کردن کامپوننت ListView در فایل Main_Activity.xml نمی باشد. همچنین نباید دیگر از متد setContentView(R.layout.activity_main) در متد onCreate استفاده کنیم. . و آن را باید حذف کرد.
آرایه os زیر، نام سیستم های عاملی است که قرار است به صورت ListView درآیند:
String[] os = {"Android", "IOS", "Symbian", "Tizen", "WindowsPhone", "BlackBerry"};
یک متغیر از نوع کلاس ArrayAdapter تعریف می کنیم. وظیفه Adapter ها پر کردن یک ListView با داده هایی از یک منبع داده که در اینجا آرایه ی os است، می باشد:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, os};
متد ArrayAdapter سه آرگومان می پذیرد :
آرگومان اول context است که برابر this است.
آرگومان دوم ساختار و شکل نمایش سطرها در ListView را نمایش می دهد که از یک نمونه آماده که توسط آندروید ارائه شده استفاده می کنیم. در آینده و درآموزشی تحت عنوان ساخت ListView سفارشی بیشتر در این مورد توضیح خواهم داد.
در انتها adapter را باید با استفاده از متد setListAdapter به لیست مان متصل کنیم :
setListAdapter(adapter);
حال می خواهیم با کلیک بروی هر آیتم، نام سیستم عامل در یک Toast نمایش داده شود. برای اینکار متد زیر را به کلاس اضافه کنید :
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
String osName = os[position];
Toast.makeText(getApplicationContext(), osName, Toast.LENGTH_SHORT).show();
}
دانلود فایل پروژه : ListActivityTest