如何在ListView中获取所选项?

时间:2013-04-01 17:23:15

标签: android android-layout

我正在构建一个带有ListView的简单应用程序。在Java代码中,我试图找出当前选择的项目。从http://developer.android.com/reference/android/widget/ListView.html的ListView文档中我看到ListView类中有一个名为

的方法
public void setSelection (int position) 

我找了一个名为getSelection()的类似名称的方法,但没有。

那么,首先,如何确定当前选择ListView中的哪个项目?我已经拥有了ListView的对象,所以我只需要该方法来告诉我用户点击了哪个项目。

ListView myLV = (ListView) findViewByID(R.id.myListView);

另外,我可以定义一个“回调”函数,只要选择了一个项目就会调用它吗?

最后,我如何使用文档来解决这个问题?这是一个非常基本的问题,我应该能够自己解决这个问题。我做了一件看似正确的事情:我查看了ListView类的官方开发者页面,但它没有提供答案。我如何为自己回答这些(基本)问题?

3 个答案:

答案 0 :(得分:1)

  

我找了一个名为getSelection()的类似名称的方法,但没有。那么,首先,如何确定当前选择ListView中的哪个项目?

超类AdapterView包含getSelectedItem()以及其他getSelectedItemId()。 AbsListView也有getSelectedView()。但是这些只有在您使用setChoiceMode()

时才有效

OnItemClickListener可让您知道点击后点击的内容。

  

最后,我如何使用文档来解决这个问题?

你在ListView的文档中开始是正确的,但是转到"Inherited Methods"部分并检查超类。

答案 1 :(得分:1)

试试这个

  mylv.setOnItemClickListener(new OnItemClickListener() {
  public void onItemClick(AdapterView<?> myAdapter, View v, int position, long lng) {
    String selectedFromList =(String) (mylv.getItemAtPosition(position));

  }                 
});

答案 2 :(得分:0)

您可以通过使用onitem click listener获得该位置。通过使用项目点击监听器,您可以获得列表中所选项目的位置。您可以将此位置置于Toast