我想在 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
是外部类的实际名称。
关于java - this.packagename 在 Android Studio 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52632711/