setOnClickListener初级问题

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button bt_call=(Button)findViewById(R.id.bt_call);
    bt_call.setOnClickListener(new MyListener());
}
class MyListener implements OnClickListener
{

    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
    EditText et_number=(EditText)MainActivity.this.findViewById(R.id.et_number);
    String num=et_number.getText().toString();

    Intent intent=new Intent();
    intent.setAction(Intent.ACTION_CALL);
    intent.setData(Uri.parse("tel:"+num));
    startActivity(intent);
    }
}

    源代码如上,请问:setOnClickListener中的参数是一个实现onClickListener接口的类,为什么  “bt_call.setOnClickListener(new MyListener());”这句话会报错,错误内容是“The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (MainActivity.MyListener)”

setOnClickListener的参数和你的内部类的OnClickListener不是同一个。应该写implements View.OnClickListener

楼上的正解,可以让Activity继承View.OnClickListener,或者使用匿名类

 private void onClickListener = new View.OnClickListener(){
 @Override
 public void onClick(View v){
 ........
 }
 };

也可以在按钮的xml的属性中设置android:onClick="onClickMethod",
然后在Activity中实现onClickMethod(View v)方法就行。这个方法名可以自己设置。

对了,你实现的应该是Dialog的点击事件。