点击监听我动态创建的Android Studio的多个按钮



好吧,我正在制作一个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]);
}

现在我的问题是,我希望点击每个按钮都能做一件稍微不同的事情——这取决于目标,即按钮的文本。我真的很难设置点击事件,这样不同的按钮会做不同的事情,即使我已经动态地创建了所有按钮。

我可以详细介绍我在安卓工作室中的设置,但我觉得我已经对我的问题有了足够的了解。

我感谢你的帮助。

我的最佳猜测是,如果你已经知道根据文本每个按钮的功能应该是什么,你就不能只取按钮的文本,然后在switch(或其他东西(中使用它来获得特定的功能,比如:

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

});

相关内容

最新更新