SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ghosti66

    ghosti66

    27 AĞUSTOS 2006
  • guillaume2111's channel

    guillaume211

    19 Kasım 2006
  • TROPFEST

    TROPFEST

    27 Mart 2007