2011-10-26 35 views
5

'u, sqlite veritabanımda kaç öğeye sahip olduğuma bağlı olarak android uygulamamda programlı olarak düğmeler oluşturmaya çalışıyorum. Düğmeler var, ama benim sorunum her butonda onClick ayarlanmasıdır çünkü kullanıcının düğmelerini tıkladığında farklı içerik göstermek istiyorum.Android oluşturma düğmesi programatik olarak

for(cursorCol.move(0); cursorCol.moveToNext(); cursorCol.isAfterLast()){ 
      Id = Integer.parseInt(cursorCol.getString(cursorCol.getColumnIndex("id"))); 
      Log.i("Id","Id : "+Id); 
       titleButton = cursorCol.getString(cursorCol.getColumnIndex("title")); 
      Log.i("titleButton","titleButton : " + titleButton); 
      elemOrder1 = Integer.parseInt(cursorCol.getString(cursorCol.getColumnIndex("elemOrder"))); 
       Log.i("elemOrder1 ","elemOrder1 : " + elemOrder1);  

       btn = new Button(this); 
        btn.setText(" " + titleButton + " "); 
        btn.setId(Id); 
        btn.setTextColor(Color.parseColor("#000000")); 
        btn.setTextSize(12); 
        btn.setPadding(10, 10, 10, 10); 
        btn.setBackgroundResource(R.drawable.gray_button); 
        btnlayout.addView(btn,params); 

        btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
      infoCard.removeAllViews(); 

      for(int i=0;i<=cursorCol.getCount();i++){ 

      Log.i("","titleButton : "+titleButton); 

       } 
      } 
} 

Ama sorun butonuna tıkladığınızda sadece son titleButton gösteriyor olmasıdır: Şimdi için bu kodu kullanıyorum. Aslında titleButton'u göstermem gerekmiyor, sadece test amacıyla yaptım. Herhangi bir fikir Her bir düğme için farklı onClick yöntemlerini nasıl oluşturabilirim?

cevap

6

Sorun bu kod satırı ile yatıyor düşünüyorum: Eğer döngü içinde tekrar tekrar aynı düzenleme düğmesi ve acutally yenisini oluşturmak değildir

btn = new Button(this); 

. Bunu gereken bir yenisini oluşturmak için:

Button new_btn = new Button(this); 

Bu yepyeni bir sen bir döngü için yinelemenize her zaman yaratacaktır.

+1

Doğru cevap bu! Bunun için çok teşekkürler! Her seferinde aynı düğmeyle çalıştığımı farketmedim. –

+0

Sorun değil. Yardım etmekten mutluluk duyuyorum. – NotACleverMan

+1

"Yeni" ile yeni bir örnek oluşturuyor, bu yüzden sorun değil. –

İlgili konular