java - this.packagename 在 Android Studio 中不起作用?
问题描述
我想在Android应用程序中添加评价我们按钮。所以我在下面添加了代码。但是“getPackageName”用红色着色。我删除了“this”。然后没关系。为什么会这样?它对我的代码有影响吗...?
Button ratebutton = (Button) findViewById(R.id.ratebutton);
ratebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse
("http://play.google.com/store/apps/details?id=" + this.getPackageName())));
}
});
解决方案
因为getPackageName()
不是从创建的匿名类View.OnClickListener
的方法,而是外部类的方法。
在匿名类中,this
指的是匿名类。
要显式引用外部类,您需要编写OuterClass.this.getPackageName()
,其中OuterClass
是外部类的实际名称。
推荐阅读
- c# - firebase auth 得到“来自 Facebook 的不成功的 debug_token 响应”
- python - python中递归方法的重复答案
- javascript - 从对象数组中减少属性值的最佳方法
- ios - 向可滚动的全景图像添加按钮 - IOS Swift 4
- python - Plotly:如何启动“x 统一”悬停模式?
- android - 重启 android studio 后 Gradle 同步失败,无法转换字符串值 'ML_MODEL_BINDING'
- python - 序列化器和模型序列化器有什么区别
- objective-c - 无法访问 swift 文件中的目标 c 类
- c++ - *(&arr + 1) - arr 如何给出数组 arr 元素的长度?
- python - 在 Python 中使用节拍和小节格式递增数字