简体   繁体   中英

How to access items inside ExpandableListView?

I have an ExpandableListView. When I click on one of these lists, I have several items.

http://img15.hostingpics.net/pics/311437expandablelistview.png

Is there a way or not to access to the first item in the first group ? I have

private ExpandableListView mGattServicesList;

SimpleExpandableListAdapter gattServiceAdapter = new SimpleExpandableListAdapter(...);

mGattServicesList.setAdapter(gattServiceAdapter);

I can access to the first group with :

mGattServicesList.getChildAt(0);

I want to go now inside this child to get items but I can't find a way.

Alright here is the function where I want to do this :

private void displayGattServices(List<BluetoothGattService> gattServices) {
    if (gattServices == null) return;

    String uuid = null;
    String unknownServiceString = getResources().getString(R.string.unknown_service);
    String unknownCharaString = getResources().getString(R.string.unknown_characteristic);

    ArrayList<HashMap<String, String>> gattServiceData = new ArrayList<HashMap<String, String>>();
    ArrayList<ArrayList<HashMap<String, String>>> gattCharacteristicData
            = new ArrayList<ArrayList<HashMap<String, String>>>();
    mGattCharacteristics = new ArrayList<ArrayList<BluetoothGattCharacteristic>>();

    // Loops through available GATT Services.
    for (BluetoothGattService gattService : gattServices) {
        HashMap<String, String> currentServiceData = new HashMap<String, String>();
        uuid = gattService.getUuid().toString();
        currentServiceData.put(
                LIST_NAME, SampleGattAttributes.lookup(uuid, unknownServiceString));
        currentServiceData.put(LIST_UUID, uuid);
        gattServiceData.add(currentServiceData);

        ArrayList<HashMap<String, String>> gattCharacteristicGroupData =new ArrayList<HashMap<String, String>>();

        List<BluetoothGattCharacteristic> gattCharacteristics = gattService.getCharacteristics();

        ArrayList<BluetoothGattCharacteristic> charas = new ArrayList<BluetoothGattCharacteristic>();

        // Loops through available Characteristics.
        for (BluetoothGattCharacteristic gattCharacteristic : gattCharacteristics) {
            charas.add(gattCharacteristic);
            HashMap<String, String> currentCharaData = new HashMap<String, String>();
            uuid = gattCharacteristic.getUuid().toString();
            currentCharaData.put(LIST_NAME, SampleGattAttributes.lookup(uuid, unknownCharaString));
            currentCharaData.put(LIST_UUID, uuid);
            gattCharacteristicGroupData.add(currentCharaData);
        }
        mGattCharacteristics.add(charas);
        gattCharacteristicData.add(gattCharacteristicGroupData);
    }

    SimpleExpandableListAdapter gattServiceAdapter = new SimpleExpandableListAdapter(
            this,gattServiceData,android.R.layout.simple_expandable_list_item_2,
            new String[] {LIST_NAME, LIST_UUID},new int[] { android.R.id.text1, android.R.id.text2 },
            gattCharacteristicData, android.R.layout.simple_expandable_list_item_2,
            new String[] {LIST_NAME, LIST_UUID},new int[] { android.R.id.text1, android.R.id.text2 }
    );
    mGattServicesList.setAdapter(gattServiceAdapter);
    mGattServicesList.performItemClick(mGattServicesList.getChildAt(1), 1, mGattServicesList.getItemIdAtPosition(1));

}

The perform click is to get the group1 extanded, then I want to do a perform click to the 2nd item inside.

Thank you in advance

First please post the adapter you are using second getchild function should get groupPosition and childPosition. it seems like you use regular list adapter instead of expendable one.

Edit:

I see you try to get the item via the list instead from the Adapter I believe this will solve your problem.

Also i am stronglly reccomend you to make custom adapter instead of use the basic one just in case you want any change

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM