Android:运行时OnClickListener不起作用

问题描述:

我正在为使用Eclipse和Android SDK的Android设备开发应用程序; 我想用相同的OnClickListener添加一些ImageButtons(在运行时)。问题在于OnClickListener仅适用于第一个添加的按钮。 对于所有下一个按钮,onClick事件根本不会触发。Android:运行时OnClickListener不起作用

有人已经遇到(并解决了)这个问题吗?

public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2, float arg3) { 
    ImageButton myButton= new ImageButton(this); 
    myButton.setMaxHeight(140); 
    myButton.setMaxWidth(140);  
    myButton.setPadding(0, 0, 0, 0); 
    myButton.setAdjustViewBounds(true); 
    myButton.setImageResource(resId); 

    myButton.setOnClickListener(new View.OnClickListener() {    
     public void onClick(View v) { 

      // TODO Auto-generated method stub 

     } 
    }); 

    myRelativeLayout.addView(myButton, 0); 
} 
+0

myButton.setFocusable(假)......会发生什么? – 2012-03-08 11:47:00

+0

你为零零索引始终添加视图? – viplezer 2012-03-08 11:47:40

+1

我只看到1个按钮。你的日志中有什么错误? – jmishra 2012-03-08 11:48:05

你总是将在第0位置的按钮。

myRelativeLayout.addView(myButton, 0); 

所以,你只需要创建新的按钮,并将其添加为“第一个按钮”,这可能是为什么你只看到工作。您之前创建的按钮会丢失。

+0

我试图添加按钮在不同的位置(使用全局计数器),但不去:运行时的结果是相同的。 – gldm 2012-03-08 14:19:56

+0

你如何测试OnClick不会触发? – 2012-03-10 10:54:55

添加视图后,设置的点击收听这样

final int count = myRelativeLayout.getChildCount(); 
    for (int i = 0; i < count; i++) { 
     View child = myRelativeLayout.getChildAt(i); 

     child.setOnClickListener(new View.OnClickListener() { 

         public void onClick(View v) { 

       // TODO Auto-generated method stub 

      } 
      }); 
+0

嗨gldm,你是否与我的答案一起工作它对我有效。如果你需要,我可以把详细的代码 – almuneef 2012-03-09 05:07:04