【发布时间】:2016-06-01 11:18:12
【问题描述】:
我制作了一个动态创建 3 个按钮的应用。由于某些原因,我需要从我创建的类中创建每个按钮。
在这个类中我写了这个:
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 仅在按钮已创建时可用。
那么我还能尝试做什么?
【问题讨论】:
-
你必须在你的按钮类中使用接口技术来更有效地交互
标签: android class button onclick