如何将ArrayAdapter适配器放入ArrayList?

时间:2011-12-02 16:29:28

标签: java android android-arrayadapter

我正在尝试创建一个能够检测附近可发现蓝牙设备的应用,并将所有mac地址都放入列表中。由于我不明白的原因,如果我尝试使用列表来存储来自device.getAddress()的字符串,则应用程序崩溃。

在将这些地址放入List之后,我放弃并使用了一个ArrayAdapter,看到它在一些示例代码中使用过。我的想法也许是我可以将结果放入ArrayAdapter,然后从中提取地址,并进入myList。仍然行不通。据我所知,如果没有我的应用程序崩溃,我就无法使用列表...

当我注释掉与myList有关的任何事情时,应用程序不会崩溃。

/* these are declared as class members */
//private ArrayAdapter<String> myArrayAdapter;
//private List<String> myList;
/*-------------------------------*/

private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        int position = 0;

        if (BluetoothDevice.ACTION_FOUND.equals(action)) {
            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            myArrayAdapter.add(device.getAddress());
            //myList.add(device.getAddress()); 
            //position++;  //SO USING THIS INTEGER...

        } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {             
            btnLocate.setText("Refresh Location");
            btnLocate.setClickable(true);
            //position--;
            //while(position>=0){
              //myList.add(myArrayAdapater.getItem(position).toString()); 
              //position--;
            //}
        }
    }
};

logcat的:

12-02 12:01:54.472: E/AndroidRuntime(16043): FATAL EXCEPTION: main
12-02 12:01:54.472: E/AndroidRuntime(16043): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.bluetooth.device.action.FOUND (has extras) } in com.ronnyszutu.lpf.LPFMainActivity$1@40519840
12-02 12:01:54.472: E/AndroidRuntime(16043): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:722)
12-02 12:01:54.472: E/AndroidRuntime(16043): at android.os.Handler.handleCallback(Handler.java:587)

1 个答案:

答案 0 :(得分:0)

在尝试将设备地址添加到其中之前,您是否初始化了列表?此外,您可能希望了解Receiver生命周期,因为开发人员文档讨论了对象有效的时间。 BroadcastReceiver#ReceiverLifecycle