【问题标题】:Create buttons from StringArray and set onClickListener从 StringArray 创建按钮并设置 onClickListener
【发布时间】:2013-07-27 11:16:33
【问题描述】:

我必须获取数组并使用它来动态创建 onClickListener()。我已经使用这种方法来创建动态按钮。任何人都知道如何使用数组来动态创建 onClickListener()?

for (int i = 0; i < categoryName.size(); i++) {

    Button btn = new Button(this);
    btn.setId(Integer.parseInt(categoryID.get(i).toString()));
    btn.setHint(categoryID.get(i).toString());
    btn.setText(categoryName.get(i)); //another array with the name of the IDS
    btn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            //example
            Toast.makeText(getApplicationContext(),categoryID.get(i),Toast.LENGTH_LONG).show();
        }
    });
    buttonLayout.addView(btn, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
}

【问题讨论】:

  • 你想创建按钮数组吗?您还想为数组中的每个按钮定义单独的onClickListener 吗?这就是你要找的吗?

标签: android arrays for-loop dynamic android-button


【解决方案1】:

只输入btn.setOnClicklistener(this); 而不是

btn.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        //example
        Toast.makeText(getApplicationContext(),categoryID.get(i),Toast.LENGTH_LONG).show();
    }
}); 

onClick():

@Override
public void onClick(View v) {
    //example
    //you can check its view 
    //here V gives you BtnId 
}

【讨论】:

    【解决方案2】:

    只需将您的 categoryNamecategoryID 数组设为 final

    【讨论】:

      猜你喜欢
      • 2011-05-23
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      • 2012-09-24
      相关资源
      最近更新 更多