用于动态创建Android Studio的多个按钮的单击侦听器

问题描述 投票:1回答:1

[好,所以我正在制作一个android应用程序,为了便于说明,我列出了一些目标。一个目标由一个字符串组成。此数据将来自数据库,因此在将来,列表的长度可能会更长或更短。每个目标都放在按钮的文本内。

由于列表的长度根据之前发生的变化而改变,因此我在运行时创建了此循环来创建按钮,这一切都很好,我可以创建按钮并将它们放置在我想要的位置,等等。我曾经这样做的代码。

    for (int i = 0; i < goals.size(); i++){
        buttons[i] = new Button(this.getContext());
        buttons[i].setLayoutParams(params);
        buttons[i].setPadding(0,150,0,150);
        buttons[i].setGravity(Gravity.CENTER);
        buttons[i].setText(goals.get(i));
        buttons[i].setBackgroundResource(R.drawable.btn_back);
        buttons[i].setTextSize(30);
        buttons[i].setTransformationMethod(null);
        linear.addView(buttons[i]);
    }

现在我的问题是,我希望单击每个按钮可以做些不同的事情-取决于目标,即按钮的文本。我真的很努力地设置click事件,以便即使我动态创建了所有按钮,不同的按钮也将执行不同的操作。

我可以为我在android studio中的设置提供更多详细信息,但我觉得我对问题有足够的了解。

感谢您的帮助。

java android events button click
1个回答
0
投票

我最好的猜测是,如果您已经知道每个按钮的功能应根据文本而定,那么您是否不能做类似的事情:

buttons[i].setOnClickListener(new View.OnClickListener(){

   @Override
   public void onClick(View view){

       //Put whatever is common between buttons outside of the switch

       switch(((Button)view).getText().toString()){

       //And then just assign a case for whatever functionality you need specifically for each goal

       }

   }


});
© www.soinside.com 2019 - 2024. All rights reserved.