我正在进行蓝牙连接。
首先,我在ListView
中列出它们的名称和地址:
pairedDevicesArrayAdapter.add(device.getName() + "\n" + device.getAddress());
pairedListView.setOnItemClickListener(mDeviceClickListener);
我为每个找到的设备创建了一个מonClick
事件。现在我需要在BluetoothDevice
事件中获取onClick
,而不仅仅是地址..
private AdapterView.OnItemClickListener mDeviceClickListener
= new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> av, View v, int arg2, long arg3) {
String info = ((TextView) v).getText().toString();
String address = info.substring(info.length() - 17);
答案 0 :(得分:0)
快速解决方案: 将所有设备存储在阵列中。当调用onItemClick时,arg2实际上是数组中的索引,它将等于数组中的索引。
好的解决方案: 扩展ArrayAdapter并实现自定义逻辑。
答案 1 :(得分:0)
创建一个arrayList并将所有已扫描的设备存储在arrayList中。
ArrayList<BluetoothDevice> deviceArrayList; //store all the scanned devices on it.
BluetoothDevice bluetoothDeviceSelected = null;
String name,address;
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
bluetoothDeviceSelected = deviceArrayList.get(position);
name=bluetoothDeviceSelected.getName();
address=bluetoothDeviceSelected.getAddress();
}