App读取JSON数据。然后它会把它放到列表视图(正确),但在按下一个项目后,我将始终得到相同的值显示。在我认为是问题的代码下面,但我找不到。
try{
JSONArray jArray = new JSONArray(result);
for(int ii=0;ii<jArray.length();ii++){
JSONObject json_data = jArray.getJSONObject(ii);
courseName = json_data.getString("fullname");
HashMap<String,String> map = new HashMap<String, String>();
map.put("fullname", courseName);
myCoursesList.add(map);
}
} catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
ListAdapter adapter = new SimpleAdapter(this, myCoursesList,R.layout.my_courses_layout,
new String[] {"fullname"}, new int[] { R.id.course});
setListAdapter(adapter);
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
String fn = ((TextView)findViewById(R.id.course)).getText().toString();
Intent in = new Intent(getApplicationContext(), courseActivity.class);
in.putExtra("fullname", fn);
startActivity(in);
}
});
答案 0 :(得分:1)
改变这个:
String fn = ((TextView)findViewById(R.id.course)).getText().toString();
对此:
String fn = ((TextView)view.findViewById(R.id.course)).getText().toString();
答案 1 :(得分:1)
我是一个普通的适配器/列表视图,我想你会想做这样的事情。
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
String fn = adapter.get(position);
Intent in = new Intent(getApplicationContext(), courseActivity.class);
in.putExtra("fullname", fn);
startActivity(in);
}
答案 2 :(得分:0)
尝试
String fn = ((TextView)view.findViewById(R.id.course)).getText().toString();
而不是
String fn = ((TextView)findViewById(R.id.course)).getText().toString();