重複の可能性:
ListView の選択は、選択モードを終了した後も持続します
アプリケーションにリストビューがあり、listitem_row.xml(各アイテムに使用しているレイアウト)内に複数のコンポーネントが含まれています。私が直面している問題は、各項目の選択に ActionMode があることです。ユーザーが項目を選択すると、アクション モードが作成され、期待どおりに動作します。アクションモードを閉じると、選択前と同じように、アイテムが選択されていない/強調表示されている/アクティブになっている/チェックされているように見せたいです。ここに私が使用しているコードがあります:
if (selectedView.isPressed()) {
selectedView.setPressed(false);
}
if (selectedView.isActivated()) {
selectedView.setActivated(false);
}
if (selectedView.isSelected()) {
selectedView.setSelected(false);
}
if (selectedView.isFocused()) {
selectedView.clearFocus();
selectedView.dispatchWindowFocusChanged(false);
}
selectedView.refreshDrawableState();
selectedView.requestLayout();
if (selectedView.isDirty()) {
selectedView.postInvalidate();
}
参考までに、すべての組み合わせを単独で試してみました。上に貼り付けたコードは、何も機能していないように見えるときに到達した状態です。デバッグを使用してすべての状態を確認しました。ユーザーがアクション モードを閉じるボタンをクリックすると、真の状態にある唯一の状態がアクティブ化された状態になります。
リストビュー行のxmlは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="?android:attr/activatedBackgroundIndicator"
android:orientation="vertical" >
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/innerrow"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/listview_selector"
android:orientation="vertical" >
<TextView
android:id="@+id/listViewHeading"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/mydrawable"
android:drawablePadding="5sp"
android:gravity="center|left"
android:paddingBottom="5sp"
android:paddingLeft="15sp"
android:paddingRight="15sp"
android:paddingTop="5sp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/app_text_color"
android:textStyle="bold" />
<View
style="@style/line"
android:layout_width="match_parent"
android:layout_height="1dp" />
<TextView
android:id="@+id/listViewDetail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="15sp"
android:paddingLeft="15sp"
android:paddingRight="15sp"
android:paddingTop="5sp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/app_text_color" />
</LinearLayout>
</LinearLayout>
任意の提案/フィードバックをいただければ幸いです。