Android为动态创建的列表设置了点击事件

时间:2013-05-07 09:16:16

标签: java android json listview

我的一个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();
    }

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

任何人都可以帮助我吗? 提前致谢

更新

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

2 个答案:

答案 0 :(得分: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
    }

});

如何使用缩进check this

开始活动

答案 1 :(得分:0)

尝试像这样

为listview设置onItemClick Listener
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");

在textview

中显示此文字