如何在同一程序中使用onclick和onclicklistener?

时间:2011-08-09 05:29:36

标签: java android onclick

我在一项活动中有两个按钮。一键有onclick事件&另一个是onclicklistener。如果我要运行我的应用程序,它会显示强制关闭错误。是否有可能在同一活动中使用这两个事件?

4 个答案:

答案 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)

您有两种选择:

  1. (由Uttam指定)是实现一个OnClickListener并添加一个开关案例来区分不同的按钮。

  2. 为每个按钮创建一个单独的匿名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
        }
    }