簡體   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