2012-06-12 47 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

0

Set View.setClickable & focus-able true