Android Studio中setOnClickListener不能使用this的解决方法
程序员文章站
2022-04-28 18:57:35
...
原代码,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; //直接用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);
}
});
}
这样的代码是可以用的,但还有一些问题存在,等待后续改进。
下一篇: jQuery库冲击时使用详解
推荐阅读
-
浅析android studio3.5中使用recycleview的包
-
Android Studio不能获取远程依赖包的完美解决方法
-
在Android Studio中Parcelable插件的简单使用教程
-
ubuntu android studio中关于NDK的使用介绍
-
Android开发 RadioButton使用中遇到的问题与解决方法
-
adb不是内部或外部命令,关于Android Studio中ADB命令不能用问题的解决办法
-
SecureCRT远程连接Linux下的sqlplus中退格键不能使用之解决方法
-
解决Android Studio中,使用MediaController时传入参数缺少的问题
-
Eclipse中maven环境使用jetty启动后不能保存更改后的css,js等静态文件的解决方法
-
Android Studio 提示“你的主机中的软件中止了一个已建立的连接”问题解决方法