我正在使用“警报对话框”构建器来可视化配对的蓝牙设备。我想将sstring数组传递给setItems()
方法,以便使用设备创建列表。 setItems()
获得CharSequence[]
和听众。当我传递字符串数组时,它失败了。我该如何解决?这是代码:
public void showPairedDevices() {
String[] pairedDevicesArray = new String[100];
// Get a set of currently paired devices
Set<BluetoothDevice> pairedDevicesSet = bluetoothAdapter
.getBondedDevices();
if (pairedDevicesSet.size() > 0) {
int i = 0;
for (BluetoothDevice device : pairedDevicesSet) {
pairedDevicesArray[i] = device.getName();
i++;
}
connectDialog = new AlertDialog.Builder(context);
connectDialog.setTitle("Paired devices");
connectDialog.setItems(pairedDevicesArray, connectDialogClickListener);
connectDialog.show();
} else {
Toast.makeText(context, "No paired devices!", Toast.LENGTH_SHORT)
.show();
}
}
private OnClickListener connectDialogClickListener = new OnClickListener() {
@Override
public void onClick(DialogInterface connectDialog, int button) {
connectDialog.dismiss();
}
};
答案 0 :(得分:1)
您的问题源于您从一个太大的String
数组开始的事实。初始化对象数组时,默认情况下每个空格都为null
。考虑到这一点,您应该知道的是,当您将长度为100的数组提供给setItem()
时,它将检查每个索引,如果它找到{{ 1}}它会抛出一个错误。这是一个建议的解决方案:
null