2012-06-19 99 views
1

的价值我有这样的ListView设置:获取ListView控件的TextView

 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正如你看到的。每行都有一个用List“items”填充的TextView。我从MySQL数据库中提取并通过JSON循环输出。

我只希望能够单击该行,并使用其单名,并将该名称作为字符串传递给Rate.class活动。我如何在代码中做到这一点?

回答

0

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

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

     } 
+0

完美!我没有意识到arg2是索引,可以变成一个字符串。 – KickingLettuce

0

一个传递给onItemClick的事情是被点击的观点:

演员以适当的类型,并调用它getText();例如:

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