Java->上下文,期望表达?

时间:2019-05-30 23:55:43

标签: java android android-context

我正在尝试通过Java和Android Studio学习和制作Android应用。我的Java领域是两年前的youtube学习和两年的基础大学课程。我确实知道如何编码。我精通Python。

我希望使用这个蓝牙库(https://github.com/akexorcist/Android-BluetoothSPPLibrary),以便我可以在电话和支持蓝牙的ESP32微控制器之间简单地进行通信。

在我的项目中,我创建了一个按钮,将用于测试该库。

*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中的Context,并理解了为什么会这样。但是,我不知道如何实现它,更不用说这里的适当上下文了。

2 个答案:

答案 0 :(得分:1)

如果您的代码在从Activity类继承的类中

即MainActivity类扩展了Activity

您可以尝试像这样通过:

BluetoothSPP bt = new BluetoothSPP(MainActivity.this);

(因为“活动”正在实现上下文)

如果它位于View类或片段之类的内部,则应尝试以下操作:

BluetoothSPP bt = new BluetoothSPP(getContext());

答案 1 :(得分:0)

如果是为了活动

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

如果是片段

BluetoothSPP bt = new BluetoothSPP(getActivty());