我的代码就是这个
JSONArray jsonArray = jObj.getJSONArray("subject");
System.out.println(jsonArray.length());
ArrayList<String> arrayList = new ArrayList<>();
for(int i=0; i<jsonArray.length(); i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
String id = jsonObject,getString("idSubject");
String name = jsonObject.getString("name");
arrayList.add(name);
}
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String(MainActivity.this, android.R.layout.simple_expandable_list_item_1, arrayList);
ListView mylist = (ListView) findViewById(R.id.subjectListView);
mylist.setAdapter(arrayAdapter);
我想知道是否可以将每个listView项与一个隐藏值(来自jsonArray的id值)相关联,并在调用listView的OnItemClickListener时获取它。 非常感谢
答案 0 :(得分:0)
您可以在视图渲染过程中将隐藏值设置为标记。
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String(MainActivity.this, android.R.layout.simple_expandable_list_item_1, arrayList){
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view= super.getView(position, convertView, parent);
JSONObject jsonObject = jsonArray.getJSONObject(position);
String id = jsonObject,getString("idSubject");
view.setTag(id);
}
};
在onItemSelected
期间
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String id=(String)view.getTag()
}
将此ID转换为原始类型(字符串,整数或其他任何内容)