Soru & Cevap

ListView ...

16.02.2015 - 04:22

Elimde bit ListView var listedeki her elemana tıklandığında hepsi için ayrı ayrı sayfa açılsın istiyorum. Bunu ListView ile nasıl yaparım? İnternette ListView için genelde Toast anlatılmış. Ayrıca Listedeki her eleman için ayrı ayrı .java ve.xml dosyası mı oluşturmalıyım?

1 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-7541-1521024507.jpg
burhanaras
18.02.2015 - 01:33

Yukarıdaki programda "int position" parametresi, listeden seçilen elemanın indexidir. Bu şekilde data içinden seçilen elemanı bulup, açacağın yeni Activity'e Bundle içinde parametre olarak gönderebilirsin.

Her item için yeni Activity açmanı da tavsiye etmem. Çünkü liste büyüklüğü değişkendir, çok büyük olabilir.

picture-31404-1421919825.png
muhcob
16.02.2015 - 05:06

ListView'ın onItemClickListener() metodunu kullanabilirsin. Bundle ile sayfalar arası veri taşıyıp gönderdiğin string değerine göre tek activity üzerinden işlem yapabilirsin. Veriyi güncel aktivity içerisinde bundle'a ekleyip diğer sayfadan nasıl alacağını aşağıda gösterdim. 

ListView lv = (ListView) findViewById(R.id.lv);
lv.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
             Intent intent = new Intent(CurrentActivit.this, SecondActivity.class);
             Bundle args = new Bundle();
             args.putInt("position", position);
             intent.putExtras(args);
             startActivity(intent);    

}

});

SecondActivity.class


       Bundle args = getIntent().getExtras();
       if (args != null) {
             int pagenumber = args.getInt("position");
             tvpage.setText("Sayfa numarası" + pagenumber );
       }