首页 > 解决方案 > 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())));
            }
        });

标签: javaandroid-studioshareratepackage-name

解决方案


因为getPackageName()不是从创建的匿名类View.OnClickListener的方法,而是外部类的方法。

在匿名类中,this指的是匿名类。

要显式引用外部类,您需要编写OuterClass.this.getPackageName(),其中OuterClass是外部类的实际名称。


推荐阅读