loginButton.setOnClickListener(this);这里为什么要用this呢?
我有点不理解为什么这里用一个this就调用了onClick这个方法呢?
我有点不理解为什么这里用一个this就调用了onClick这个方法呢?
2015-12-17
一般来说,android中的接口回调有3中。
1、 主程序回调
默认的这种this,结果就是 在 Activity 后面 跟了个 implements OnClickListener,然后根据提示,会自动在下面出现一个新的方法 onclick(),是单独的一个方法。
2、内部类格式的
mybtn.setOnClickListener( 后面 写个new 再用快捷键自动补全,会形成
mybtn.setOnClickListener(new View.OnClickListener() {
然后 工具又会自动补全为,
mybtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
3、自定义接口
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mybtn = (Button) findViewById(R.id.id_btn);
mybtn.setOnClickListener(new myClick());
}
public class myClick implements View.OnClickListener {
@Override
public void onClick(View v) {
}
}
最后,学android必须要有java基础。
package com.example.firstandroidapp;
import android.app.Activity;
import android.net.sip.SipAudioCall.Listener;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{
private Button loginButton;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loginButton = (Button) findViewById(R.id.button1);
loginButton.setOnClickListener(this);
}
public void onClick(View arg0) {
Toast.makeText(MainActivity.this, "interface does excute", 3).show();
}
}
举报