2016-04-13 21 views
0

Çok sayıda görünümün pragmatik olarak eklendiği FrameLayout'um var, ilk görünümler ImageViews ve ikincisi TextViews.Tekil Bakış FrameLayout'tan Alın

// adding TextView 
textview.setText(text); 
textview.setTypeFace(typeface); 
framelayout.addView(textview); 

// adding ImageView 
imageview.setImageDrawable(getResources().getDrawable(R.drawable.c10)); 
framelayout.addView(imageview); 
ı anladım istiyorum

Şimdi şey nasıl kullanıcı tarafından tıklandığında herhangi tek bir görünüm elde etmektir?

+0

paylaşın. –

cevap

0

İlk önce görünüme bir tıklama dinleyicisi ayarlamanız gerekir; böylece Android, tıklama etkinliğini uygulamanıza gönderir.

şey kullanıcı textview tıklandığında

textview.setOnClickListener((new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //response user click action 
     } 
    }); 

gibi bu onClick(View v) çağrılacak.

1

Bunu yapmanın bir yolu, görüntüleyicileri FrameLayout'a eklemeden önce tüm görünümler için ayrı ayrı işlevselliğe sahip tıklama dinleyicilerine ayarlamak olacaktır.

Ancak böyle tek OnClickListener önceden tanımlamak daha iyi olabilir:

View.OnClickListener myListener = new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
      } 
     }; 

ve tüm görünümlere aynı birini ayarlayın.

sadece bir resim ve bir metin görünümü olacağını eminseniz

1), aşağıdaki onClick içinde (Görünüm v kullanabilirsiniz)

: onClick içinde, görünümü tıklandığı algılamak için 2 yol vardır
if (v instanceof ImageView){  

    }else if(v instanceof TextView){ 

    } 

2) Ya da görünümlerine kimlikleri ayarlamak ve sonra kullanabileceğiniz bu:

 switch (v.getId()) { 

    } 

Ayrıca id biz switch case ezer geçerim çünkü ne her görüşe kimlikleri ayarlamak için unutma.

Not: view.generateViewId kullanabilirsiniz API 17 Üstü() id almak ve bu yardımcı olur o

Umut kurtarmak için! Tüm kodunuzu