我实现了点击按钮搜索蓝牙设备功能,开始是显示在同一界面中的,
但是现在我想要点击按钮弹出单选列表弹框,单选列表中的数据能实时更新,
就是一有蓝牙就显示出来,然后选中一个能进行相应操作,我用安卓系统带的AlertDialog
但是我不知道setSingleChoiceItems()里数据源该如何绑定好?
我原始列表实现的部分代码见下:
private LinearLayout mPairedLayout;
private ArrayList<String> mPairedDevicesList = new ArrayList<String>();
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
mPairedDevicesList.clear();
mPairedLayout.removeAllViews();
LayoutInflater inflater = LayoutInflater.from(getActivity());
if (pairedDevices.size() > 0) {
for (BluetoothDevice device : pairedDevices) {
LinearLayout detail = (LinearLayout) inflater.inflate(R.layout.row_devices, null);
((TextView) detail.findViewById(R.id.device_name)).setText(device.getName());
((TextView) detail.findViewById(R.id.device_details)).setText(device.getAddress());
detail.findViewById(R.id.icon).setVisibility(View.GONE);
mPairedLayout.addView(detail);
detail.setOnClickListener(bluetoothConnect);
detail.setTag(device.getAddress());
mPairedDevicesList.add(getString(R.string.paired) + device.getName() + "\n" + device.getAddress());
}
这样就是搜索到的都保存在mPairedDevicesList,只能每次点按钮搜索一次显示出来,不能实时显示,如果中途有新设备发现的话不会继续接着在mPairedLayout中显示;现在我想改成这样:
//点击搜索按钮弹出设备列表界面
private void searchBluetoothDevice1(){
new AlertDialog.Builder(getActivity())
.setTitle(getString(R.string.btdialog_title))
.setNegativeButton(getString(R.string.cancel), null)
.setPositiveButton(getString(R.string.connect), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.setSingleChoiceItems(new String[] {"choice1","choice2","choice3"}, -1,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
})
.show();
}
问题是这个setSingleChoiceItems里第一个参数要怎么写好?怎么保证实时更新数据呢