我做了一个动态创建3个按钮的应用程序。由于某些原因,我需要从我创建的课程中创建每个按钮。android onclicklistener类与按钮里面?
这个类里我写了这个:
public class FloatButton{
public void generate(String text, final Context context){
Button button = new Button(context);
button.setText(text);
}
现在我的主要活动我创建这个类的一个对象:
FloatButton floatButton = new FloatButton();
floatButton.generate("float Button", this);
现在的问题...我需要添加一个个别onclick监听每个按钮。我想通过点击一个按钮与班级的其他按钮进行交互。这就是为什么我需要将onclick监听器写入我的主要活动,而不是FloatButton类。所以,我试过如下:
floatButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
这并没有工作,因为floatButton对象不具有setOnClickListener方法,因为它不是按钮类的一部分。
此外,我试图设置类内按钮的Id。因此类是这样的:
public class FloatButton{
public void generate(String text, int id, final Context context){
Button button = new Button(context);
button.setId(id);
button.setText(text);
}
}
现在我希望通过按钮ID设置onclicklistener:
final OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.1:
...
break;
case R.id.2:
...
break;
}
}
可悲的是R.id. ...不起作用,因为只有在按钮已经创建的情况下,ID才可用。
那么我还能做什么?
你必须使用界面技术在你的按钮类更有效地互动 – Riskhan