java - this.packagename 在 Android Studio 中不起作用?

标签 java android-studio share rate package-name

我想在 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/

相关文章:

java - 类中的游戏世界结构

java - 将用户输入的数字列表放入数组中

java - bean ……它到底是什么

java - For 循环到 Stream

Android:在共享之前获取图像的文件大小(Intent.ACTION_SEND)

android - 启动错误 "com.twitter.android.PostActivity"

android - Android Studio 3.1 “Run”无法编译代码

android - 应该提供默认构造函数吗?

java - Android Studio 无法找到有效的 JVM Android Studio 1.2 OSX

android - 使用操作栏中的图标设置共享 Intent