原代码,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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐