-1
listView.performItemClick(listView, 0, listView.getItemIdAtPosition(0));

私はこれを試しましたが、ほとんどの場合は機能します。奇妙なケースが1つあります。デバイスを回転させると、performClickたとえば位置ゼロにaを呼び出し、onClickListenerが呼び出さDetailViewれ、位置ゼロのforが呼び出されます。ただし、最後にアクティブ化されたアイテムが位置3であった場合でも、位置3は引き続き強調表示されます。これは、アクティビティを開始して最初の行をアクティブ化するように設定したときに機能しますが、向きを変更した後は機能しません。

状況:タブレットモード、右側のサイトの詳細ビュー、左側のサイトのリストビューでアクティビティAを使用しています。

ステップ1:3.リスト項目をタッチします->行が強調表示され、詳細ビューが表示されます。

ステップ2:タブレットを回転させても何も保存せず、向きの変更をキャッチしません。nada->3.アイテムは引き続き強調表示されます。

listView.performItemClickのステップ:メソッド->エフェクトでPosition ceroを呼び出そうとしますonActivityCreated:アクティビティが最初に開始されたときに最初の行が強調表示され、詳細ビューが表示され、方向が変わると、onActivityCreated()が再度呼び出され、performItemClickも実行されます。 onClickListenerが呼び出され、詳細ビューが更新されますが、リストアイテム番号3は引き続き強調表示されます。

4

1 に答える 1

0

これは、ビューが変更されるたびに更新されるために発生しOrientationます。特定の方向で listItem をクリックすると、必要に応じて強調表示されます。But after change the orientation the view is refreshed 状態を保存したい場合は、ここを見てください:

https://stackoverflow.com/a/151940/1395259

于 2012-09-22T03:52:51.057 に答える