将一个活动中listview的Json数据发送到另一个活动

时间:2013-08-26 05:52:28

标签: android json listview android-intent

我正在尝试将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();

3 个答案:

答案 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));