17 Kasım 2011, PERŞEMBE
Liste Görünümü için özel Adaptör
custom adapter
listemdeki bir görünüm oluşturmak istiyorum. Bir tane oluşturmak ve aynı zamanda nasıl çalıştığını anlatmak için nasıl bir inceleyeyim herhangi bir madde var mı?
CEVAP
17 Kasım 2011, PERŞEMBE
public class ListAdapter extends ArrayAdapter<Item> {
public ListAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}
public ListAdapter(Context context, int resource, List<Item> items) {
super(context, resource, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi;
vi = LayoutInflater.from(getContext());
v = vi.inflate(R.layout.itemlistrow, null);
}
Item p = getItem(position);
if (p != null) {
TextView tt1 = (TextView) v.findViewById(R.id.id);
TextView tt2 = (TextView) v.findViewById(R.id.categoryId);
TextView tt3 = (TextView) v.findViewById(R.id.description);
if (tt1 != null) {
tt1.setText(p.getId());
}
if (tt2 != null) {
tt2.setText(p.getCategory().getId());
}
if (tt3 != null) {
tt3.setText(p.getDescription());
}
}
return v;
}
}
Bu projem için kullanılan bir sınıftır. Görüntülemek istediğiniz öğeleri bir koleksiyon olması gerekir, benim durumumda <Item>
. View getView(int position, View convertView, ViewGroup parent)
yöntemi geçersiz kılmak gerekir.
R. düzeni.itemlistrow Liste Görünümü satır tanımlayan XML düzeni. Aşağıda kontrol edin.
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:orientation="vertical"
android:layout_width="fill_parent">
<TableRow android:layout_width="fill_parent"
android:id="@ id/TableRow01"
android:layout_height="wrap_content">
<TextView android:textColor="#FFFFFF"
android:id="@ id/id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="id" android:textStyle="bold"
android:gravity="left"
android:layout_weight="1"
android:typeface="monospace"
android:height="40sp" />
</TableRow>
<TableRow android:layout_height="wrap_content"
android:layout_width="fill_parent">
<TextView android:textColor="#FFFFFF"
android:id="@ id/categoryId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="categoryId"
android:layout_weight="1"
android:height="20sp" />
<TextView android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="1"
android:textColor="#FFFFFF"
android:gravity="right"
android:id="@ id/description"
android:text="description"
android:height="20sp" />
</TableRow>
</TableLayout>
Bir liste Görünümü tanımlanan ana faaliyet vardır umarım.
Faaliyet sınıfı, bu gibi yapabilirsiniz.
ListView yourListView = (ListView) findViewById(R.id.itemListView);
// get data from the table by the ListAdapter
ListAdapter customAdapter = new ListAdapter(this, R.layout.itemlistrow, List<yourItem>);
yourListView .setAdapter(customAdapter);
Bu yardımcı olur umarım. Eğer herhangi bir sorunuz varsa, lütfen sorun.
Bunu Paylaş:
/Kaydet: bir liste Görünümü için döndü...
Nasıl Android Liste Görünümü ayırıcı ç...
Nasıl Android liste görünümü yenilemek...
Farklı bir düzen ile Android liste Gör...
Listeyi güncelledikten sonra listenin ...