0

我的一个 android 学习项目我正在从动态 json 对象创建一个列表视图。它完美地创造了视图。以下是我的代码

final ListView lv = (ListView) findViewById(R.id.listView1);
    String json = "[{\"name\":\"Name 1\",\"number\":\"num 1\"},{\"name\":\"Name 2\",\"number\":\"num 1\"}]";


try {
    JSONArray array = (JSONArray) new JSONTokener(json).nextValue();

    String[] stringarray = new String[array.length()];
    for (int i = 0; i < array.length(); i++) {
        stringarray[i] = array.getJSONObject(i).getString("name");
    }
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, stringarray); 
    lv.setAdapter(adapter);
    } catch (JSONException e) {
    // handle JSON parsing exceptions...
        e.printStackTrace();
    }

现在我正在尝试为每个列表添加一个单击事件,并且还需要显示另一个活动并仅显示此列表的内容。我不知道该怎么做。

谁能帮帮我吗 ?提前致谢

更新

final ListView lv = (ListView) findViewById(R.id.listView1);
        String json = "[{\"name\":\"Name 1\",\"number\":\"num 1\"},{\"name\":\"Name 2\",\"number\":\"num 1\"}]";
        try {
            JSONArray array = (JSONArray) new JSONTokener(json).nextValue();

            String[] stringarray = new String[array.length()];
            for (int i = 0; i < array.length(); i++) {
                stringarray[i] = array.getJSONObject(i).getString("name");
            }
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, stringarray); 
            lv.setAdapter(adapter);

            adapter.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                        long arg3) {
                    // Start a indent to start new activity and store necessary information hhere
                }

            });

            } catch (JSONException e) {
            // handle JSON parsing exceptions...
                e.printStackTrace();
            }
4

2 回答 2

2
lv.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        // Use an indent to start new activity and store necessary information in the indent
    }

});

在如何使用缩进开始一个活动,检查这个

于 2013-05-07T09:19:57.797 回答
0

尝试像这样为列表视图设置 onItemClick 侦听器

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        String text=arg0.getItemAtPosition(arg2);
        Intent i=new Intent(context, secondActiviy.class);
        i.putExtra("name", text);
        startActivity(i);
    }
});

在你的活动中得到这样的额外

String name=getIntent().getExtras().getString("name");

在文本视图中显示此文本

于 2013-05-07T09:21:53.730 回答