为不同的按钮设置不同的onClickListener

巴斯卡奇

我有一个活动,其中有10个完全相同imageButton的资源都来自同一资源,myimage.png我正在尝试使用设置onClick10个按钮的每个按钮的监听器setTag()但是,所有这些imageButton都绑定到同一听众。

这是我的代码:

public class AllButtonsActivity extends Activity {

ImageButton imageButton;
ImageButton allImageButtons[] = new ImageButton[10];

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ll);

    createButtonsAndAddListener();

}

public void createButtonsAndAddListener() {
    LinearLayout parent = (LinearLayout) findViewById(R.id.ll);
    for (int i = 0; i < 10; i++) {
        imageButton = new ImageButton(this);
        imageButton.setImageResource(R.drawable.myimage);
        imageButton.setTag(i);
        allImageButtons[i] = imageButton;
        allImageButtons[i].setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                int i = (Integer) imageButton.getTag();
                Toast.makeText(AllButtonsActivity.this,
                        "ImageButton"+i+ "is clicked!", Toast.LENGTH_SHORT)
                        .show();
            }

        });
        parent.addView(imageButton);

    }
}
}

我想要的是,当单击第i个按钮时,吐司会弹出一条消息:

“ ImageButton” + i +“被单击!”

德里亚根

您的图片按钮变量在循环的每次迭代中都会被覆盖。而不是使用在活动开始时声明的变量,而是每次创建一个新变量

public void createButtonsAndAddListener() {
    LinearLayout parent = (LinearLayout) findViewById(R.id.ll);
    for (int i = 0; i < 10; i++) {
        ImageButton imageButton = new ImageButton(this);
        imageButton.setImageResource(R.drawable.mybutton);
        imageButton.setTag(i);
        allImageButtons[i] = imageButton;
        allImageButtons[i].setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                int i = (Integer) imageButton.getTag();
                Toast.makeText(AllButtonsActivity.this,
                    "ImageButton"+i+ "is clicked!", Toast.LENGTH_SHORT)
                    .show();
            }

        });
        parent.addView(imageButton);

    }
}

将您的代码更改为上面的代码,并ImageButton imageButton;从活动变量声明中删除

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为按钮设置不同的路径

来自分类Dev

为不同的按钮设置背景颜色按钮

来自分类Dev

UISearchBar为取消按钮设置了不同的颜色

来自分类Dev

将不同的按钮设置为正确的位置

来自分类Dev

如何在Qt中为不同的按钮设置不同的图标?

来自分类Dev

如何在Qt中为不同的按钮设置不同的图标?

来自分类Dev

为UITableView的不同部分设置按钮标记

来自分类Dev

如何使用QSS为禁用的按钮设置不同的背景颜色?

来自分类Dev

为UITableView的不同部分设置按钮标记

来自分类Dev

使用循环将按钮设置为onclicklistener

来自分类Dev

QML不同按钮的相同设置

来自分类Dev

按钮设置不同的活动颜色

来自分类Dev

为路径设置不同的颜色

来自分类Dev

设置为相同的数量后,按钮和输入高度会有所不同

来自分类Dev

将函数的返回值设置为不同,具体取决于在tkinter中单击的按钮

来自分类Dev

如何设置不同按钮的alertdialog框标题?

来自分类Dev

为不同的HTML按钮(AJAX)编写不同的PHP代码

来自分类Dev

Express-为不同的子域设置不同的路由

来自分类Dev

Bootstrap工具提示-为不同的工具提示设置不同的宽度

来自分类Dev

Cordova / Phonegap为不同页面设置了不同的设备方向

来自分类Dev

为Keras中的不同功能设置不同的损失函数

来自分类Dev

Outlook 2013-为不同的域邮箱设置不同的签名

来自分类Dev

MySQL为多行插入中的不同行设置不同的UUID

来自分类Dev

为不同的环境设置不同的控制台入口点

来自分类Dev

为每个标签设置不同的颜色

来自分类Dev

为列设置不同的默认值

来自分类Dev

为动态生成的div设置不同的颜色

来自分类Dev

使用CastleWindsor为IServiceBehavior注册不同的设置

来自分类Dev

将div设置为不同的高度?

Related 相关文章

  1. 1

    为按钮设置不同的路径

  2. 2

    为不同的按钮设置背景颜色按钮

  3. 3

    UISearchBar为取消按钮设置了不同的颜色

  4. 4

    将不同的按钮设置为正确的位置

  5. 5

    如何在Qt中为不同的按钮设置不同的图标?

  6. 6

    如何在Qt中为不同的按钮设置不同的图标?

  7. 7

    为UITableView的不同部分设置按钮标记

  8. 8

    如何使用QSS为禁用的按钮设置不同的背景颜色?

  9. 9

    为UITableView的不同部分设置按钮标记

  10. 10

    使用循环将按钮设置为onclicklistener

  11. 11

    QML不同按钮的相同设置

  12. 12

    按钮设置不同的活动颜色

  13. 13

    为路径设置不同的颜色

  14. 14

    设置为相同的数量后,按钮和输入高度会有所不同

  15. 15

    将函数的返回值设置为不同,具体取决于在tkinter中单击的按钮

  16. 16

    如何设置不同按钮的alertdialog框标题?

  17. 17

    为不同的HTML按钮(AJAX)编写不同的PHP代码

  18. 18

    Express-为不同的子域设置不同的路由

  19. 19

    Bootstrap工具提示-为不同的工具提示设置不同的宽度

  20. 20

    Cordova / Phonegap为不同页面设置了不同的设备方向

  21. 21

    为Keras中的不同功能设置不同的损失函数

  22. 22

    Outlook 2013-为不同的域邮箱设置不同的签名

  23. 23

    MySQL为多行插入中的不同行设置不同的UUID

  24. 24

    为不同的环境设置不同的控制台入口点

  25. 25

    为每个标签设置不同的颜色

  26. 26

    为列设置不同的默认值

  27. 27

    为动态生成的div设置不同的颜色

  28. 28

    使用CastleWindsor为IServiceBehavior注册不同的设置

  29. 29

    将div设置为不同的高度?

热门标签

归档