我正在尝试将json对象数据从一个活动发送到其他活动。我有一个从json数组成功填充的列表视图,但是当我点击列表项时,它没有响应。项目点击不执行任何操作。我看了一些教程,但没有帮助。我需要将列表项的json数据发送到另一个活动。任何帮助将不胜感激。
使用Json填充的listview的活动。
try{
jArray = new JSONArray(result);
ListView listView=(ListView)findViewById(R.id.listtour_cat);
listView.setAdapter(new ListViewAdapter(JSONUseActivity.this,jArray));
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
try{
if(!jArray.isNull(arg2)){
Intent intent = new Intent(getApplicationContext(),TourDetailActivity.class);
intent.putExtra("id", jArray.optJSONObject(arg2).getString("tour_id"));
startActivity(intent);
}
}
catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
}
});
}
catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
}
catch (Exception e) {
Log.e("log_tag","Error in http connection!!" + e.toString());
}
目标活动:
Intent intent = getIntent();
String rcvid = intent.getStringExtra("id");
Toast.makeText(getApplicationContext(), rcvid, Toast.LENGTH_LONG).show();
答案 0 :(得分:1)
将JsonArray转换为String然后将其附加到Intent并发送它。
JSONObject jObject = new JSONObject("Your Json Response");
Intent obj_intent = new Intent(Main.this, Main1.class);
Bundle b = new Bundle();
b.putString("Array",jObject4.toString());
obj_intent.putExtras(b);
其中jObject4是JSON对象。
进入下一页:
Intent b = getIntent().getExtras();
String Array=b.getString("Array");
答案 1 :(得分:0)
试试这一行..
Intent intent = new Intent(getApplicationContext(),TourDetailActivity.class);
intent.putExtra("id", jArray.getJSONObject(arg2).getString("tour_id"));
startActivity(intent);
答案 2 :(得分:0)
把这段代码放在第二课中获取价值..
String rcvid = getIntent().getExtras().getString("id").toString();
并通过意图传递来自First类的值:
intent.putExtra("id", jArray.optJSONObject(arg2));