Android开发:定义Button事件时报错


定义Button事件的时候出现错误:

The type new DialogInterface.OnClickListener(){} mustimplement the inherited abstract methodDialogInterface.OnClickListener.onClick(DialogInterface, int)

源码如下:

  1. public class HelloWorldActivity extends Activity  {  
  2.     private Button btn1=null;  
  3.     private Button btn2=null;  
  4.     @Override  
  5.     public void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.         setContentView(R.layout.main);  
  8.         btn1=(Button) findViewById(R.id.btn1);  
  9.         btn2=(Button) findViewById(R.id.btn2);  
  10.         btn1.setOnClickListener((Android.view.View.OnClickListener) listener);  
  11.         btn2.setOnClickListener((android.view.View.OnClickListener) listener);  
  12.     }  
  13. private OnClickListener listener=new OnClickListener() {  
  14.       
  15.     public void onClick(View v) {  
  16.         Button btn=(Button) v;  
  17.         switch (btn.getId()) {  
  18.         case R.id.btn1:  
  19.             Toast.makeText(HelloWorldActivity.this"你点击了提交!", Toast.LENGTH_LONG).show();  
  20.             break;  
  21.         case R.id.btn2:  
  22.             System.out.println("你点击了取消!");  
  23.             break;  
  24.         }  
  25.           
  26.     }  
  27. };  
  28. }  

原因:

因为android里面有两个包里面都有OnClickListener的接口,这么写代码的话,程序自己不会判断用哪个接口,所以会报错。

解决办法:

private View.OnClickListener listener=new View.OnClickListener()

这么修改就好了!

相关内容