获得ListView TextView的价值

时间:2012-06-19 22:43:39

标签: android mysql listview android-arrayadapter

我有这个ListView设置:

        ListView listView = getListView();
        listView.setTextFilterEnabled(true);

        listView.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> arg0, View arg1,
                    int arg2, long id) {

                //

                Intent i = new Intent(getApplicationContext(), Rate.class);
                startActivity(i);

            }
        });

        setListAdapter(new ArrayAdapter<String>(Items.this, R.layout.list,
                items));

如您所见,它是标准的ListView。每行都有一个TextView,其中填充了List“items”。我从MySQL数据库中提取并通过JSON循环输出。

我只是希望能够单击具有单个名称的行,并获取该名称并将其作为String传递给Rate.class活动。我怎么能在代码中这样做?

3 个答案:

答案 0 :(得分:2)

将putExtra添加到您的意图中(见下文)。我假设您将列表'items'作为活动的成员,arg2参数基本上是列表中单击的项目的索引,您可以使用该索引从'items'列表中获取名称。

        public void onItemClick(AdapterView<?> arg0, View arg1,
                int arg2, long id) {

            //

            Intent i = new Intent(getApplicationContext(), Rate.class);
            i.putExtra("name", items.get(arg2));
            startActivity(i);

        }

答案 1 :(得分:0)

您可以创建一个特定的数组适配器实例,而不是只创建一个传递给该函数的实例。然后在OnItemClick()函数中,int arg2是用户选择的数组适配器中的索引。您可以从文本视图中获取数组适配器和getText()的视图。

答案 2 :(得分:0)

传递给onItemClick的一件事是被点击的视图:

将视图投射到适当的类型并在其上调用getText();例如:

final String text = ((TextView)view).getText();