SORU
27 Aralık 2010, PAZARTESİ


Dinamik bir liste görünümü Android elements Ekle

Hiç kimseye ya da android bir liste görünümü oluşturmak için bir öğretici açıklar önerebilirsiniz?

İşte benim gereksinimleri:

  • Bir düğmeye basarak yeni öğeler dinamik olarak eklemek gerekir.< / ^ br .
  • Anlamak için yeteri kadar basit (örneğin herhangi bir performans artışı veya convertview muhtemelen olmadan) olmalıdır

Bu konuyla ilgili pek çok soru var, StackOverflow burada biliyorum yayınlanmıştır, ama soruma cevap verecek herhangi bir bulamadı. Teşekkürler!

CEVAP
27 Aralık 2010, PAZARTESİ


İlk projede 2 ** klasör: XML düzeni oluşturun

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <Button
        android:id="@ id/addBtn"
        android:text="Add New Item"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="addItems"/>
    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:drawSelectorOnTop="false"
    />
</LinearLayout>

Bu üst düğmesi ve altındaki bir liste görünümü ile basit bir düzen. ListView varsayılan ListView ListActivity tanımlayan @android:id/list kullanabilirsiniz kimliği olduğunu unutmayın.

public class ListViewDemo extends ListActivity {
    //LIST OF ARRAY STRINGS WHICH WILL SERVE AS LIST ITEMS
    ArrayList<String> listItems=new ArrayList<String>();

    //DEFINING A STRING ADAPTER WHICH WILL HANDLE THE DATA OF THE LISTVIEW
    ArrayAdapter<String> adapter;

    //RECORDING HOW MANY TIMES THE BUTTON HAS BEEN CLICKED
    int clickCounter=0;

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        adapter=new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1,
            listItems);
        setListAdapter(adapter);
    }

    //METHOD WHICH WILL HANDLE DYNAMIC INSERTION
    public void addItems(View v) {
        listItems.add("Clicked : " clickCounter  );
        adapter.notifyDataSetChanged();
    }
}

android.R.layout.simple_list_item_1 liste düzeninde Android tarafından sağlanan ve olmayan karmaşık şeyler için bu stok düzeni kullanabilirsiniz.

listItems veri görüntüsünde gösterildiği tutan bir listedir. Tüm ekleme ve kaldırma listItems; listItems değişiklikleri görünümünde yansıtılması yapılmalıdır. Bunu kullanarak bildirilmesi gerekir ArrayAdapter<String> adapter tarafından ele:

adapter.notifyDataSetChanged();

Bir Bağdaştırıcı örneği ile 3 parametreler: bağlam, hangi olabilir activity/listactivity; düzeni bireysel liste öğesi; ve son olarak, liste, hangisi gerçek verilere görüntülenir listesi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chilla Frilla™

    Chilla Frill

    7 Aralık 2006
  • gamingbits

    gamingbits

    2 Mayıs 2006
  • kimberly p

    kimberly p

    23 Ocak 2010