gpt4 book ai didi

android - 如何从 ExpandableListView 中的 child 那里获取项目?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:31 25 4
gpt4 key购买 nike

我的应用程序上有 onChildClick 方法,这是我的代码

public class listview extends ExpandableListActivity {

private static final String NAME = "NAME";
private static final String IS_EVEN = "IS_EVEN";
private ExpandableListAdapter mAdapter;
List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
List<List<Map<String, String>>> childData = new ArrayList<List<Map<String, String>>>();
InputStream is;
boolean addState = true;
boolean addCountry;
HashMap<String, String> countryMap = new HashMap<String, String>();
HashMap<String, String> stateMap = new HashMap<String, String>();
int count = 0;
int count1 = -1;
int count2 = 0;
List<String> stateCount = new ArrayList<String>();

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Reading data from text file to inout stream
is = this.getResources().openRawResource(R.raw.countrystate);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
try {
String line = "";
while ((line = reader.readLine()) != null) {
String[] strings = line.split("-");
String ctry = strings[0].trim();
String st = strings[1].trim();
/*
* loading country and state to two separate hash tables
*/
if (countryMap.containsValue(ctry)) {
addCountry = false;
if (!addState) {
stateMap.put("state" + count1 + count2, st);
count2++;
}
} else {
addCountry = !addCountry;
count1++;
//adding no. of states for a country to a list
stateCount.add("" + count2);
if (addCountry) {
count2 = 0;
countryMap.put("country" + count, ctry);
stateMap.put("state" + count1 + count2, st);
addState = false;
}
count2++;
count++;
}
}
} catch (Exception e) {
}
//re-arranging the state count list
stateCount.add("" + count2);
stateCount.remove(0);
for (int i = 0; i < countryMap.size(); i++) {
Map<String, String> curGroupMap = new HashMap<String, String>();
groupData.add(curGroupMap);
String ctry = countryMap.get("country" + i);
curGroupMap.put(NAME, ctry);
curGroupMap.put(IS_EVEN, "Country " + i);
List<Map<String, String>> children = new ArrayList<Map<String, String>>();
int k = Integer.parseInt(stateCount.get(i));
for (int j = 0; j < k; j++) {
Map<String, String> curChildMap = new HashMap<String, String>();
children.add(curChildMap);
curChildMap.put(NAME, stateMap.get("state" + i + j));
// curChildMap.put(IS_EVEN, "State " + j);
}
childData.add(children);
}



// Set up our adapter
mAdapter = new SimpleExpandableListAdapter(this, groupData,
android.R.layout.simple_expandable_list_item_1, new String[] {
NAME, IS_EVEN }, new int[] { android.R.id.text1,
android.R.id.text2 }, childData,
android.R.layout.simple_expandable_list_item_2, new String[] {
NAME, IS_EVEN }, new int[] { android.R.id.text1,
android.R.id.text2 });
setListAdapter(mAdapter);


}
public boolean onChildClick (ExpandableListView parent, View v, int groupPosition,int childPosition,long id) {
System.out.println("Inside onChildClick at groupPosition = " + groupPosition +" Child clicked at position " + childPosition+v.toString());

return true;

}

public List<List<Map<String, String>>> getChildData() {
return childData;
}

}

我的点击方法

public boolean onChildClick (ExpandableListView parent, View v, int groupPosition,int childPosition,long id) {
System.out.println("Inside onChildClick at groupPosition = " + groupPosition +" Child clicked at position " + childPosition+v.toString());

return true;

}

如果我点击列表 child 我想得到字符串

这是我的日志:

07-18 11:40:54.334: INFO/System.out(1014): Inside onChildClick at groupPosition = 0 Child clicked at position 0android.widget.TwoLineListItem@405337c0
07-18 11:40:56.714: DEBUG/dalvikvm(916): GC_EXPLICIT freed 14K, 53% free 2557K/5379K, external 884K/1038K, paused 111ms
07-18 11:40:58.744: INFO/System.out(1014): Inside onChildClick at groupPosition = 0 Child clicked at position 0android.widget.TwoLineListItem@405337c0

我想获取字符串数据而不是“TwoLineListItem@405337c0”,谁能帮帮我?谢谢

最佳答案

使用:

parent.getExpandableListAdapter().getChild(groupPosition, childPosition);

(如果你想要一个 child 的数据,或者 .getGroup(groupPosition) 如果你想要来自组的数据) View 而不是:

v.toString()

关于android - 如何从 ExpandableListView 中的 child 那里获取项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11534435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com