原代码,this变红
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.btn_1);
btn.setOnClickListener(this);
}
看了很多方法,可以这样写btn.setOnClickListener
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.btn_1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
但在setOnClickListener中无法访问intent,于是有下面这种解决方法:
private Context ctx = this;
final static String TAG = "MAINACTIVITY";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.btn_1);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
intent.setClass(ctx,Main2Activity.class);
ctx.startActivity(intent);
}
});
}
也可以直接用MyApplication.this代替this。
Original: https://blog.csdn.net/weixin_43655688/article/details/109133702
Author: 手滑了才点的
Title: Android Studio中setOnClickListener不能使用this的解决方法
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/526587/
转载文章受原作者版权保护。转载请注明原作者出处!