やあ
ListViewを含むレイアウトがあります。この ListView の各ビュー (行) は、3 つのビュー (CheckBox、ImageView、および TextView (水平)) を含む LinearLayout です。
私の問題は次のようなものです-トラックボールを使用してListViewの行を強調表示すると、機能します(行の背景色はオレンジです)。行が強調表示されているときにトラックボールをクリックすると、現在表示されているレイアウトを別のレイアウトに切り替えます (setContentView())。ここで、ListView を使用して元のレイアウトを再表示すると (再表示するためにインスタンスを保存しますが、再作成されません!)、強調表示された行は強調表示されなくなります。Google によると、これは問題なく、トラックボールを使用するとすぐにハイライトが表示されます。
本当の問題は、トラックボールを使用してリスト内を上下に移動しても、ListView の他の行が強調表示されないことです。代わりに、スクロールの結果として強調表示される必要がある各行で、TextView が選択され、TextView をティック (TruncateAt.MARQUEE) に設定したため、それがわかりました。
トラックボールをクリックした場合にのみ、その TextView が現在刻んでいる行にハイライトが戻ります。
TextView をフォーカス不可、クリック不可、無効に設定することで、この問題を解決しようとしました。ListView で setItemsCanFocus(false) を設定しようとしましたが、まだ成功していません。
助けてください...ありがとう!