0

今回私の質問への回答が得られたら幸いです。それは正しく配置されていないので、ここに私の前の質問へのリンクですHow do I know the ID's of views if I am inflating a view multiple times in the same parent on button click? 私は3つのLinearLayoutsを持つTableLayoutを含んでいるchild.xmlを膨張させています。彼が望むように意見を述べる。TextViewsと1つのxmlファイルから同じIDを複数回膨らませた別のビューを区別する方法はありますか?

しかし、これらのtextviewsまたはsetOnClickListenersからデータを収集する方法は、さまざまなビューがTextViewの同じIDを共有するため、混乱します。

インフレされたビューでfindViewByIdを使用し、適切な型を追加して参照をリストに格納することを勧めましたが、最初に表示されたビューをOnClickListenerに設定することができます。

私がやっていることを達成することさえ可能かどうか知りたかったですか?他の記事では、findViewByIdが見つけることができるビューの最初の可能なインスタンスを見つけることを読んでいます。それは私の場合には問題ですか?

私のコードスニペット

TextView[] tv=new TextView[l.size()]; 
for(int i=0;i<tv.length;i++){ 
tv[i]=(TextView)l.get(i).findViewById(R.id.mdsnew_type_sp); 
tv[i].setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
showDialog(DATE_DIALOG_ID); } 
}); 
//I have also tried this 
public void getData(){ 
for(int i=0;i<l.size();i++){ 
tv1=(TextView)l.get(i).findViewById(R.id.mdsnew_type_sp); 
    } 

を見てみましょう。しかし、私は最初のTextViewと残りのsetOnClickリスナーにできていてくださいは、すべて無視されます。ここで

は、私は私の活動を膨らませる方法を説明し、他のリンクと同様のシナリオであるが、情報の取得がはInflating a view multiple times in the same parent when a button is clicked

すべてのヘルプは、事前に感謝を報われる説明されていません。

答えて

1

これらTextViewsは(あなたのケースでは、LinearLayout)親ViewGroupに追加されているので、あなたは子ビューの親のリストをトラバースし、それぞれにOnClickListenerを追加することができます。

for (int childPos = 0; childPos < myLayout.getChildCount(); childPos++) { 
    myLayout.getChildAt(childPos).setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // ... 
     } 
    }); 
} 
+0

を助けますか?私は今何をすべきでしょうか? –

1

この5月私は、私は一度だけTextViewsを編集することができないと私は戻って、特定のTextViewに来て、その上のsetTextにしようとしようとした場合、テキストはのLinearLayoutの最後のTextViewに設定されている場合

LanearLayout parentLayout = (LinearLayout)findViewById(R.id.main_ll); 
int count = parentLayout.getChildCount(); 
     for (int i = 0; i < count; i++) 
    { 
     View view = mainLl.getChildAt(i); 
     if (view instanceof TextView) 
      { 
       int id=view.getId(); 
      ((TextView) view).setText(" "); 

      } 
    } 
関連する問題