android studio onclicklistener,Android Studio中setOnClickListener不能使用this的解决方法
原代码,this变红protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn=findViewById(R.id.btn_1);btn.setOnClickListener(this);}123...
原代码,this变红
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.btn_1);
btn.setOnClickListener(this);
}1234567
看了很多方法,可以这样写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) {
//具体操作
}
});
}123456789101112
但在setOnClickListener中无法访问intent,于是有下面这种解决方法:
private Context ctx = this; //直接用context变量定义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);
}
});
}12345678910111213141516171819
更多推荐
所有评论(0)