如何在android

时间:2016-08-30 07:48:01

标签: android json

最近,我使用JSON parser

在我的服务器上显示文字。

[{"name":"AAA", "age":"111"},
 {"name":"BBB", "age":"222"},
 {"name":"CCC", "age":"333"}]

我尝试JSON解析器这个文本。 show listview。

String strData = "";
.
.
.
@Override
protected void onPostExecute(final String result) {
    super.onPostExecute(result);

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);

    try {
        JSONArray jsonArray = new JSONArray(result);

        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject object = jsonArray.getJSONObject(i);
            data = object.getString("name") + "." + object.getString("age");
            adapter.add(data);
        }
    } catch (JSONException e) { 
        e.printStackTrace();
    }
    ListView listView = (ListView) findViewById(R.id.listview);
    listView.setAdapter(adapter);
    }

这导致我的手机。

AAA.111
-------
BBB.222
-------
CCC.333 

直到这里 但我想在列出项目按钮时单击数据传输。

所以我使用intent.putExtra

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
     @Override
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         ListView listView =(ListView) parent;

         Intent intent = new Intent(this, anotherActivity.class);
         intent.putExtra("information", adapter.getItem(position));
         startActivity(intent);
      }
 });

这是成功的数据传输。 但我不希望所有的数据传输。

例如,

。我只发送age数据传输。

换句话说,显示我的手机name数据,age数据。      并传输另一个活动数据。只有name个数据。

可以通过编程方式进行吗?

如果你不明白。请给我建议。

感谢。

@update问题

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 @Override
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     ListView listView =(ListView) parent;

     String data =adapter.getItem(position);
     String[] parts = data.split(".");
     String name = parts[0];
     Log.d(TAG, name);  // not showing log..   not work ?.. 
     Intent intent = new Intent(this, anotherActivity.class);
     intent.putExtra("information", adapter.getItem(position));
     startActivity(intent);
  }

});

1 个答案:

答案 0 :(得分:4)

在声明你的意图之前试试这个

String data = adapter.getItem(position);    
String[] parts = data.split(".");
String name = parts[0];

然后:

Intent intent = new Intent(this, anotherActivity.class);
intent.putExtra("information", name);
startActivity(intent);