0

我正在构建一个带有 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 类的官方开发人员页面,但它没有提供答案。我如何为自己回答这些(基本)问题?

4

3 回答 3

1

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

超类 AdapterView 有getSelectedItem(),以及getSelectedItemId()其他。AbsListView 也有getSelectedView()。但是这些只有在你使用过时才会起作用setChoiceMode()

OnItemClickListener让您在单击时知道单击了哪个。

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

您从 ListView 的文档开始是对的,但请转到“继承方法”部分并检查超类。

于 2013-04-01T17:27:45.890 回答
1

试试这个

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

  }                 
});
于 2013-04-01T17:44:40.917 回答
0

您可以使用 onitem click listener.by 使用 on item click listener 获取位置,您可以获取列表中所选项目的位置。您可以将此位置放在 Toast

于 2013-04-02T12:48:30.153 回答