this.packagename не работает в Android Studio? - PullRequest
0 голосов
/ 03 октября 2018

Я хотел добавить кнопку оценить нас в приложение для Android. Так что я добавил ниже code.but "getPackageName", окрашенный в RED. Я удалил "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())));
            }
        });

1 Ответ

0 голосов
/ 03 октября 2018

Поскольку getPackageName() - это не метод анонимного класса, созданного из View.OnClickListener, а метод внешнего класса.

В анонимном классе this относится к анонимному классу.

Чтобы явно обратиться к внешнему классу, необходимо написать OuterClass.this.getPackageName(), где OuterClass - фактическое имя внешнего класса.

...