Как правильно выбрать нужный контекст в Java? - PullRequest
0 голосов
/ 16 марта 2020

Я недавно начал использовать java, и я пытаюсь понять, что такое «контекст» и как его правильно использовать.

public AdapterView.OnItemClickListener selectDevice = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            String info = ((TextView) view).getText().toString();
            String adress = info.substring(info.length()-17);
            Intent comIntent = new Intent(MainActivity.this, Communication.class); //WHY???


        }
    };

Для этого примера и аргумента намерения, почему бы нам не использовать "getContext ()" или "getApplicationContext" или просто "это"?

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Я пытаюсь понять, что именно "Контекст"

Что такое "Контекст" на Android?

почему бы нам не использовать getContext () или getApplicationContext или просто this?

Поскольку this не относится к Activity в анонимных классах. Смотрите здесь Доступ к "этому" из Java анонимного класса

1 голос
/ 16 марта 2020

Вызов getContext() или getApplicationContext() такой же, как this.getContext() верно? this дает класс объекта, в котором вы находитесь. Поэтому, когда вы можете вызвать getContext(), это означает, что вы находитесь внутри класса, который расширяет класс Context и имеет функцию getContext().
Например, из Activity вы можно вызвать getContext(), потому что у него есть функция. Но в этом случае вы находитесь в OnItemClickListener классе. И этот класс не имеет функции getContext(). Вы должны быть в классе с функцией getContext().

...