2012-06-12 3 views
0

Я добавляю небольшой вид линейной линии. Я должен применить к нему View.OnClickListener, но даже если представление было добавлено, onClick все еще не срабатывает. Вот мой методНастройка OnClickListeners для динамически добавленных просмотров

for (Streams stream : streamArray) { 
streamCount++; 
    if (!(streamCount > 3)) { 
    // ADD AN ITEM 
    View v = li.inflate(R.layout.stream_item, theLinearLayoutforStreamItems, false); 
    //SET ONCLICK 

    v.setOnClickListener(new android.view.View.OnClickListener() { 

     public void onClick(View v) { 
      Log.i("onclick", ""+position); 
      } 
     }); 

    txtStreamItem = (TextView) v.findViewById(R.id.txtViewStream_item); 
    txtStreamItem.setText(stream.name); 
    theLinearLayoutforStreamItems.addView(v); 

} 

onClick() не срабатывает. Я не знаю, почему, и я не могу найти что-либо в Интернете.

ответ

1

Я думаю, что вы действительно хотите достичь, это:

txtStreamItem.setOnClickListener(new android.view.View.OnClickListener() { 

    public void onClick(View v) { 
     Log.i("onclick", ""+position); 
     } 
    }); 

Поставил чуть ниже этой линии:

txtStreamItem = (TextView) v.findViewById(R.id.txtViewStream_item); 
+0

спасибо. это сработало. Я думаю, что это скорее логическая проблема, чем проблема SDK. – prometheuspk

+0

'Просмотр v' является контейнером. Он содержит «TextView», это то, что вы действительно хотите получить. – ariefbayu

Смежные вопросы