android - 从以编程方式添加的按钮获取 OnClick()?

标签 android button onclick onclicklistener buttonclick

我在布局中添加了一些按钮:

LinearLayout row = (LinearLayout)findViewById(R.id.KeysList);
    keys=db.getKeys(console);

    my_button=new Button[keys.size()];
    for (bt=0;bt<keys.size();bt++){
           my_button[bt]=new Button(this);
           my_button[bt].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.FILL_PARENT));
           my_button[bt].setText(keys.get(bt));
           my_button[bt].setId(bt);
           row.addView(my_button[bt]);
           my_button[bt].setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  if (my_button[bt].getId() == ((Button) v).getId()){
                      Toast.makeText(getBaseContext(), keys.get(bt), 0).show();
                  }
              }
           });
        }


我想知道点击了哪个按钮以及如何获取点击按钮的文本?
而且我认为在这里使用 bt 似乎不起作用!

最佳答案

此代码正在运行。希望对您有所帮助:)

    final ArrayList<String> Keys = new ArrayList<String>();
    for(int i = 0; i < 10; i ++){
        Keys.add("Keys is : " + String.valueOf(i));
    }

    LinearLayout Row = (LinearLayout)findViewById(R.id.KeysList);

    final Button[] my_button = new Button[Keys.size()];

    for (int bt = 0; bt < Keys.size(); bt ++){
        final int Index = bt;

        my_button[Index] = new Button(this);
        my_button[Index].setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
        my_button[Index].setText(Keys.get(Index));
        my_button[Index].setId(Index);

        my_button[bt].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (my_button[Index].getId() == ((Button) v).getId()){
                    Toast.makeText(getBaseContext(), Keys.get(Index), 0).show();
                }
            }
        });

        Row.addView(my_button[Index]);
    }

示例项目编号:Your project

关于android - 从以编程方式添加的按钮获取 OnClick()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17914098/

相关文章:

android - Firebase 实时数据库 addValueEventListener

android - 为 Android 构建 Web 服务

Flutter - 防止点击/点击事件通过 View 层次结构传递

android获取振动设置

java - 同时突出显示多个 EditText 控件中的文本

java - fxml 中返回空指针的按钮

android - 使用循环将按钮添加到android布局

javascript - 如何知道按下了哪个按钮?

Javascript onclick 表单验证

javascript - React onClick 函数在渲染时触发