gpt4 book ai didi

java - 保留 ListView 中项目的检查状态

转载 作者:行者123 更新时间:2023-12-02 02:09:01 24 4
gpt4 key购买 nike

我有一个由 CheckedTextView 项目组成的 ListView,每个项目都使用一个单选按钮。它是一个单选列表,指示我的主要 Activity 中正在播放的音频流。

一旦检查了其中一项,它就应该保持检查状态,直到检查另一项,或者直到用户通过通知或 UI“停止”流,并且每次退出应用程序时都需要重置检查状态.

此刻我正在这样做:

final BookmarkAdapter adapter = new BookmarkAdapter(this, db.getAllBookmarks());
final ListView listView = findViewById(R.id.bookmark_list_view);

listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
View v = listView.getChildAt(position);
CheckedTextView ctv = v.findViewById(R.id.bookmark_list_item);
ctv.toggle();
// ... go on to launch a service and another activity
}
});

在我的其他 Activity 打开之前,您可以看到当您选择列表项时正在检查该项目。但是,当我返回主要 Activity 时,不再检查任何项目。

在应用程序关闭或手动取消选中之前保留项目的选中状态的正确方法是什么?

ListView xml:

<ListView
android:id="@+id/bookmark_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:choiceMode="singleChoice"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />

CheckedTextView xml:

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bookmark_list_item"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:gravity="center_vertical"
android:paddingLeft="16dip"
android:paddingRight="16dip"
android:text="@string/list_item_title"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />

最佳答案

我会在列表中的所有对象中多一个字段。它可以是 boolean 检查,默认为 false,单击时使其为 true。然后你可以轻松保存对象的状态。如果您更改状态,只需通知适配器它应该重新绘制自身。

关于java - 保留 ListView 中项目的检查状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50307576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com