如何获取适配器对象中添加的位置

时间:2016-04-21 10:58:14

标签: android adapter

我正在进行蓝牙连接。

首先,我在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);

2 个答案:

答案 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();
}