将多个值传递给其他acitivity类

时间:2015-09-25 13:21:12

标签: android android-intent

我有一个JSONArray,它可以获得多对经度和纬度,我想使用Intent将多个对传递到另一个类中,它之前工作正常,因为它只传递一对经度和纬度。

在想我是否仍然可以使用intent传递,或者我需要使用ArrayList在另一个类中逐个存储和调用?

请告知。感谢。

这是我的json数组:

{"longitude":"101.9366229","latitude":"1.236459"},{"longitude":"101.930041","latitude":"1.224119"}]}

我打算准备传递的代码:

   Intent i = new Intent(this, BorrowerMap.class);
                i.putExtra("username", username);
                i.putExtra("longitude", Longitude);
                i.putExtra("latitude", Latitude);
                startActivity(i);

我的意图获取值的代码:

  Bundle extras = getIntent().getExtras();
        if (extras != null) {
            username = extras.getString("username");
            Longitude = extras.getDouble("longitude");
            Latitude = extras.getDouble("latitude");
        }

我希望能打印经度":#34; 101.9366229","纬度":" 1.236459,经度":" 101.930041""纬度":" 1.224119"在另一个班级中。

2 个答案:

答案 0 :(得分:0)

您可以将json字符串传递给下一个类。

示例:

Intent i = new Intent(this, BorrowerMap.class);
            i.putExtra("data", "{"longitude":"101.9366229","latitude":"1.236459"},{"longitude":"101.930041","latitude":"1.224119"}]}");
            startActivity(i);

然后在BorrowerMap类中进行Json操作?

答案 1 :(得分:0)

试试这个,

用于发送数据,

ArrayList<HashMap<String, String>> list=new ArrayList<HashMap<String,String>>();

        HashMap<String, String> h1=new HashMap<String, String>();
        h1.put("username", username);
        h1.put("longitude", longitude);
        h1.put("latitude", latitude);

        list.add(h1);

        Intent next=new Intent(First.this,Second.class);
        next.putExtra("list", list);
        startActivity(next);

next.putExtra()是一个parceblevalue而不是字符串。

用于接收数据。

ArrayList<HashMap<String, String>> list=new ArrayList<HashMap<String,String>>();
        list=(ArrayList<HashMap<String, String>>) getIntent().getExtras().get("list");

        String uName=list.get(0).get("username");
        String lat=list.get(0).get("longitude");
        String long=list.get(0).get("latitude");

发送时将其转换为字符串。

String lat=latitude+"";
String lang=longitude+"";

并且在双重接收时。

double lat=Double.parseDouble(stringlat);
        double lang=Double.parseDouble(stringlang);