繁体   English   中英

如何将BluetoothAdapter从一个活动传递到Android中的另一个活动?

[英]How to pass a BluetoothAdapter from one activity to another in Android?

我有一个名为MainActivity.java的类/活动,在其中使用了BluetoothAdapter BA来检查蓝牙是否打开。 我还有另一个名为Search.java的类,用于搜索附近的蓝牙设备,但它必须使用在MainActivity.java中创建的相同BluetoothAdapter进行搜索。 我怎么做?

而且我的MainAactivity.java中还有一个按钮,必须在另一个类中定义其onClick,我该怎么做?

如果这样的问题很愚蠢,对不起,但是我是Android的新手,并且很少有使用Java的经验。

谢谢你的时间!

我有一个名为MainActivity.java的类/活动,在其中使用了BluetoothAdapter BA来检查蓝牙是否打开。 我还有另一个名为Search.java的类,用于搜索附近的蓝牙设备,但它必须使用在MainActivity.java中创建的相同BluetoothAdapter进行搜索。 我怎么做?

(编辑:请在下面查看我的编辑,您无需在情况下实现此功能)。您可以实现Singleton来存储和获取BluetoothAdapter,因此您可以在项目中的任何位置访问它。 就像这样:

import android.bluetooth.BluetoothAdapter;

public class BluetoothSingleton {
    private static BluetoothSingleton mInstance = new BluetoothSingleton();
    private BluetoothAdapter mBluetoothAdapter;

    private BluetoothSingleton(){
        // Private constructor to avoid new instances
    }

    public static BluetoothSingleton getInstance(){
        return mInstance;
    }

    public void setBluetoothAdapter(BluetoothAdapter adapter){
        mBluetoothAdapter = adapter;
    }

    public BluetoothAdapter getBluetoothAdapter(){
        return mBluetoothAdapter;
    }
}

而且我的MainActivity.java中还有一个按钮,必须在另一个类中定义其onClick,我该怎么做?

您可以简单地创建一种方法来设置该按钮侦听器,并传递如下所示的OnClickListener

AnotherClass.java:

...
public void setButtonListener(View.OnClickListener listener){
    mButton.setOnClickListener(listener);
}
...

然后,可以在MainActivity.java中进行设置:

...
AnotherClass another = new AnotherClass();
another.setButtonListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // Do what you want here
        }
    });
...

编辑1:

实际上, BluetoothAdpater是单例的 ,因此您可以调用:

BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();

您将获得相同的适配器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM