listview如何獲取選中行

小億
394
2023-08-19 03:35:04
欄目: 編程語言

在Android中,可以通過以下步驟來獲取ListView中選中的行:

  1. 首先,在ListView的適配器中設(shè)置一個(gè)選擇器,用于標(biāo)記被選中的行。可以使用android:background屬性來設(shè)置選擇器樣式,例如:
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:choiceMode="singleChoice"
android:listSelector="@android:color/darker_gray" />

在這個(gè)例子中,選擇器使用了系統(tǒng)自帶的灰色樣式。

  1. 在Activity或Fragment中,獲取ListView的實(shí)例,并設(shè)置一個(gè)OnItemClickListener監(jiān)聽器,用于監(jiān)聽行的點(diǎn)擊事件。在監(jiān)聽器的onItemClick回調(diào)方法中,可以獲取到被點(diǎn)擊行的位置(position):
ListView listView = findViewById(R.id.listView);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// 處理選中行的邏輯
}
});
  1. onItemClick方法中,可以通過position參數(shù)來獲取選中行的位置。根據(jù)位置,可以獲取到對(duì)應(yīng)的數(shù)據(jù)對(duì)象或者更新UI。

以上是通過點(diǎn)擊行來獲取選中行的方式。如果要根據(jù)其他操作獲取選中行,可以使用getCheckedItemPosition方法來獲取當(dāng)前選中行的位置,例如:

int selectedPosition = listView.getCheckedItemPosition();

然后可以根據(jù)位置來獲取對(duì)應(yīng)的數(shù)據(jù)對(duì)象或者更新UI。

注意:如果ListView的選擇模式是CHOICE_MODE_SINGLE,只能選擇一行;如果選擇模式是CHOICE_MODE_MULTIPLE,可以選擇多行。

0