0

我正在尝试将 json 对象数据从一个活动发送到另一个活动。我有一个从 json 数组成功填充的列表视图,但是当我单击列表项时,它没有响应。单击项目时未执行任何操作。我看过一些教程,但没有帮助。我需要将列表项的 json 数据发送到另一个活动。任何帮助,将不胜感激。

使用 Json 填充的列表视图的活动。

       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();
4

3 回答 3

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");
于 2013-08-26T05:58:35.170 回答
0

试试这条线..

Intent intent = new Intent(getApplicationContext(),TourDetailActivity.class);  
intent.putExtra("id", jArray.getJSONObject(arg2).getString("tour_id"));
startActivity(intent);    
于 2013-08-26T05:58:44.107 回答
0

把这个代码放在第二类中获得价值..

String rcvid = getIntent().getExtras().getString("id").toString();

并从 First class 传递值,其意图如下:

intent.putExtra("id", jArray.optJSONObject(arg2));
于 2013-08-26T06:28:07.527 回答