Java -> Context, Expression ожидается? - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь научиться создавать приложения для Android через Java и Android Studio. Мой уровень Java - это несколько часов изучения youtube и базовый курс колледжа два года назад. Однако я знаю, как кодировать. Я хорошо знаю Python.

Я хочу использовать эту библиотеку Bluetooth (https://github.com/akexorcist/Android-BluetoothSPPLibrary), чтобы я мог просто обмениваться данными между телефоном и микроконтроллером ESP32 с поддержкой Bluetooth.

В своем проекте я создал кнопку, которую буду использовать для тестирования этой библиотеки.

*snip*
        //my button
        Button btn = findViewById(R.id.myBtn); //use R.id for the button id
        btn.setOnClickListener(new View.OnClickListener() { //button listener
            @Override
            public void onClick(View v) {
                //add whatever code here
                Log.e("my app", "log msg test"); //outputs to logcat window
                BluetoothSPP bt = new BluetoothSPP(Context);

                if(!bt.isBluetoothAvailable()) {
                    Log.e("my app", "bluetooth is not available");
                } else {
                    Log.e("my app", "bluetooth is available");
                }

            }
*snip*

Я застрял на:

BluetoothSPP bt = new BluetoothSPP(Context);

Контекст дает мне ошибку, говоря выражение ожидаемое. Я посмотрел, что такое контекст в Java, и понял, почему это так. Тем не менее, я понятия не имею, как реализовать это, не говоря уже о правильном контексте.

Ответы [ 2 ]

1 голос
/ 02 июня 2019

Если это для деятельности

BluetoothSPP bt = new BluetoothSPP(MainActivity.this);
or
BluetoothSPP bt = new BluetoothSPP(this);
or
BluetoothSPP bt = new BluetoothSPP(getApplicationContext());

Если это для фрагмента

BluetoothSPP bt = new BluetoothSPP(getActivty());
1 голос
/ 31 мая 2019

если ваш код находится в классе, который унаследован от класса Activity

, т.е. класс MainActivity расширяет Activity

, вы можете попробовать передать его так:

BluetoothSPP bt = new BluetoothSPP(MainActivity.this);

(потому что Activity реализует контекст)

, если он находится внутри чего-то вроде класса View или фрагмента, вы должны попробовать что-то вроде этого:

BluetoothSPP bt = new BluetoothSPP(getContext());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...