我在一项活动中有两个按钮。一键有onclick事件&另一个是onclicklistener。如果我要运行我的应用程序,它会显示强制关闭错误。是否有可能在同一活动中使用这两个事件?
答案 0 :(得分:2)
所有按钮的OnClickListener如下:
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
然后添加onClick()事件,如下所示:
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v == btn1){
//Things to do
}
if(v == btn2){
//Things to do
}
}
答案 1 :(得分:0)
请你从logcat发送实际错误。
或以下代码可能会有所帮助。
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Test2Activity extends Activity implements OnClickListener{
private Button btn1, btn2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1 = (Button)findViewById(R.id.button1);
btn1.setOnClickListener(this);
btn2 = (Button)findViewById(R.id.button2);
btn2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
System.out.println("Button 1 Press");
break;
case R.id.button2:
System.out.println("Button 2 Press");
break;
default:
break;
}
}
}
答案 2 :(得分:0)
你可以使用......
public class MyClass extends Activity implements OnClickListener
{
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
btn1. setOnClickListener( new OnClickListener()
{
public void onClick( View v )
{
//add action for btn1.
}
});
btn2.setOnClickListener( this );
}
public void onClick( View v )
{
if( v== (Button)findViewById( R.id.btn2_id )
{
//perform action for btn2.
}
}
}
答案 3 :(得分:0)
您有两种选择:
(由Uttam指定)是实现一个OnClickListener
并添加一个开关案例来区分不同的按钮。
为每个按钮创建一个单独的匿名OnClickListeners:
btn1.setOnClickListener(new OnclickListener() {
@Override
public void onClick(View v) {
// first button behavior
}
}
btn2.setOnClickListener(new OnclickListener() {
@Override
public void onClick(View v) {
// second button behavior
}
}