Android で ListView で選択した項目を強調表示したままにする
Android 開発では、詳細を表示しているときに ListView で選択した項目を強調表示することが望ましい場合がよくあります。選択した項目を別の ListView に表示します。この記事では、このシナリオに関連する一般的な問題について説明します。
問題:
ユーザーが ListView (lv_cli) で項目を選択すると、選択されたクライアントの詳細が表示されない別の ListView (lv_cli_det) に表示する必要があります。ただし、これを行うと、lv_cli でユーザーが選択した項目のハイライトが失われます。
解決策:
解決策は、android:choiceMode="singleChoice" 属性を利用することにあります。 XML レイアウトで。この属性は、ListView の選択動作を指定し、一度に 1 つの項目のみを選択できるようにします。選択した項目の背景は、android:listSelector="#666666" 属性を使用して自動的に強調表示されます。
コード:
<ListView android:id="@+id/cli_lista" android:layout_width="512dp" android:layout_height="wrap_content" android:fadeScrollbars="false" android:choiceMode="singleChoice" android:listSelector="@color/my_selector" > </ListView>
または、次のように設定することもできます。これらの属性は、ListView クラスの setSelector() メソッドと setChoiceMode() メソッドを使用してプログラムで設定できます。
このアプローチを使用すると、lv_cli で選択された項目は強調表示されたままになり、選択されたクライアントの詳細は lv_cli_det に表示されます。
重要な注意:
onItemClick イベントに直接応答してビューの背景を管理しないことが重要です。ビューは一時的なオブジェクトであるため、このアプローチでは、アイテムがビューからスクロールアウトされて再利用されるときに、予期しない動作が発生する可能性があります。
以上がAndroidでListViewの選択した項目を強調表示し続けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。