具有多个onClickListener的Java高效方法
我的应用程序目前有5个按钮(我稍后会添加更多),当单击每个按钮时,它将为一个项目分配一个数字 我想知道是否有一种更有效的方法来编写setOnClickListner(似乎我必须使用它,因为我将它作为一个片段使用。如果我要在xml中分配一个onClick,我找到了一种方法,但我无法将其应用于代码的这一部分)。我已经写了5次了(将来还会更多) 我可以做一个切换或循环吗?比如为按钮数组指定i=0,i<5,i++,然后为数据指定数据=i+1?如果是的话,对我如何做到这一点有什么建议吗具有多个onClickListener的Java高效方法,java,android,loops,onclicklistener,Java,Android,Loops,Onclicklistener,我的应用程序目前有5个按钮(我稍后会添加更多),当单击每个按钮时,它将为一个项目分配一个数字 我想知道是否有一种更有效的方法来编写setOnClickListner(似乎我必须使用它,因为我将它作为一个片段使用。如果我要在xml中分配一个onClick,我找到了一种方法,但我无法将其应用于代码的这一部分)。我已经写了5次了(将来还会更多) 我可以做一个切换或循环吗?比如为按钮数组指定i=0,i
谢谢 您可以使用通用方法,然后根据按钮的R.id实现一个开关盒 举个这样的例子。 在onCreate(--)方法中 在活动中实现View.onClickListener并在活动中重写此方法
public void onClick(View v){
switch(v.getId()){
case R.id.cut1Btn:
//Put Your Code Here
break;
case R.id.cut2Btn:
//Put Your Code Here
break;
case R.id.cut3Btn:
//Put Your Code Here
break;
case R.id.cut4Btn:
//Put Your Code Here
break;
case R.id.cut5Btn:
//Put Your Code Here
break;
}
}
您可以使用通用方法,然后根据按钮的R.id实现一个开关案例 举个这样的例子。 在onCreate(--)方法中 在活动中实现View.onClickListener并在活动中重写此方法
public void onClick(View v){
switch(v.getId()){
case R.id.cut1Btn:
//Put Your Code Here
break;
case R.id.cut2Btn:
//Put Your Code Here
break;
case R.id.cut3Btn:
//Put Your Code Here
break;
case R.id.cut4Btn:
//Put Your Code Here
break;
case R.id.cut5Btn:
//Put Your Code Here
break;
}
}
您可以实现一个开关来执行以下操作:
您可以实现一个开关来执行以下操作:
这里的其他答案也可以,但要么使用标签(通常是一个坏主意,并阻止任何其他用途),要么不是真正的面向对象的。相反,您应该使一个类成为它的实例
private class MyClickListener {
private int data;
public MyClickListener(int data) {
this.data = data;
}
public void onClick(View view) {
Toast.makeText(getActivity(), "TESTING BUTTON CLICK" + data,Toast.LENGTH_SHORT).show();
}
}
...
int i=0;
for(Button button : buttons) {
button.setOnClickListener(new MyClickListener(i++));
}
这里的其他答案也可以,但要么使用标签(通常是一个坏主意,并阻止任何其他用途),要么不是真正的面向对象的。相反,您应该使一个类成为它的实例
private class MyClickListener {
private int data;
public MyClickListener(int data) {
this.data = data;
}
public void onClick(View view) {
Toast.makeText(getActivity(), "TESTING BUTTON CLICK" + data,Toast.LENGTH_SHORT).show();
}
}
...
int i=0;
for(Button button : buttons) {
button.setOnClickListener(new MyClickListener(i++));
}
这看起来很棒,谢谢!但问题是,“在活动中实现View.onClickListener并在活动中重写此方法”是什么意思。我该怎么做?@D.Kate看看这个答案的最后一个part@D.Kate别介意,伙计。但我认为您应该重新使用java的核心部分。具体类、抽象类和界面这看起来很棒,谢谢!但问题是,“在活动中实现View.onClickListener并在活动中重写此方法”是什么意思。我该怎么做?@D.Kate看看这个答案的最后一个part@D.Kate别介意,伙计。但我认为您应该重新使用java的核心部分。具体类、抽象类和接口
private class MyClickListener {
private int data;
public MyClickListener(int data) {
this.data = data;
}
public void onClick(View view) {
Toast.makeText(getActivity(), "TESTING BUTTON CLICK" + data,Toast.LENGTH_SHORT).show();
}
}
...
int i=0;
for(Button button : buttons) {
button.setOnClickListener(new MyClickListener(i++));
}