我有这个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活动。我怎么能在代码中这样做?
答案 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();