0

私は現在、ListView を含む Activity を含むアプリケーションを実装しています。ユーザーがリスト ビュー内の項目を選択すると、このビューの背景とテキストの色が変更されます。そのため、この変更のコードをonItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)メソッドに配置しました。しかし、これは問題ではありません。

問題は、アクティビティを開くときに、「ユーザーが何かを選択する前に」最初の選択を行う必要があることですlistView.setSelection(index);onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)「背景と文字の色」を変更しました。

そのための解決策..?!!! ありがとう、

4

3 に答える 3

0

選択のためにItemSelectedを試してください

リスト ビューで iem を選択しても onItemClick が発生しない

于 2013-09-16T17:04:22.333 に答える
0

設定選択後

 listView.setSelection(index);

そして、呼び出した後

listView.getAdapter().notifyDatasetChanged();

私はこれがあなたの問題を解決すると思います

于 2013-09-16T19:41:12.570 に答える
0

Yout Adapter でメソッドを作成して、選択を設定します (またはコンストラクターで実行します)。

public myAdapter (COntext context, int initialSelectedPos){
   setSelectedPos(initialSelectedPos);
}

public void setSelectedPos(int pos){
   mSelectedPos = pos;
}

次に、getView をチェックインして、pos が mSelectedPos と同じであることを確認します。

@Override
public View getView(..., int pos){
   /*convertView stuff*/

   if (pos == mSelectedPos){
      //Put the background as it is selected
   }else{
      //...
   }

   return view;
}

OnItemClickListener の OnItemClick メソッドで、アダプタの setSelectedPos メソッドを呼び出します。コメントした問題を解決し、選択したビューが画面に表示されなくなり、画面に戻った場合でも、選択済みとしてマークされます(元の背景で表示されていたと確信しています)。

于 2013-09-16T17:06:58.590 に答える