Android:运行时OnClickListener不起作用

时间:2012-03-08 11:41:31

标签: android

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

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

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);
}

2 个答案:

答案 0 :(得分:0)

您总是在第0个位置添加按钮。

myRelativeLayout.addView(myButton, 0);

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

答案 1 :(得分:0)

添加视图后,像这样设置点击监听器

    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   

           }
            });