2013-08-12 1 views
0
에 setItemChecked

내 목록 조각 코드는는 ListFragment

public class LanguageFragment extends ListFragment { 
String[] language_list = new String[] { "English", "Tamil" }; 
ListView lv; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.language_fragment, container, 
      false); 
    lv = (ListView) view.findViewById(android.R.id.list); 
    lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
      inflater.getContext(), android.R.layout.simple_list_item_1, 
      language_list) { 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View v = convertView; 
      if (convertView == null) { 
       LayoutInflater li = (LayoutInflater) getActivity() 
         .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = li.inflate(android.R.layout.simple_list_item_1, null); 
      }    
      if (lv.isItemChecked(position)) { 
       v.setBackgroundColor(Color.DKGRAY); 
      } else { 
       v.setBackgroundColor(0); 
      } 
      return super.getView(position, v, parent); 
     } 
    }; 
    setListAdapter(adapter); 
    lv.setItemChecked(1, true); 
    return view; 
} 
} 

여기가 Fragment를로드 할 때 Color.DKGRAY 색상으로 강조 표시됩니다 내 두 번째 행 (인덱스 1)입니다. 그래서 setChoiceMode을 사용했습니다. 그러나이 코드는 선택 모드를 두 번째 행으로 설정합니다. 그러나 Fragment을로드 할 때 Color.DKGRAY 색으로 강조 표시되지 않았습니다. 목록 항목 만 클릭하면 Color.DKGRAY 색으로 강조 표시됩니다. 나는 무엇이 문제인지 모른다. 친구 도와주세요.

업데이트 # 1

내가 setItemChecked이 조각에서 작동하지 않았다 생각하거나 그것을 할 올바른 방법이 아니다.

+0

일부 카운트가 0으로 시작하고 일부가 컬렉션의 첫 번째 값으로 1로 시작하는 문제가 있는지 확인 했습니까? – bofredo

+0

0과 1을 모두 확인했습니다. 같은 문제가있는 친구입니다. – Gunaseelan

+0

나를 괴롭히는 한 가지 이유는 팽창 된 뷰에서만 배경을 '슈퍼'콜에서보기로 되돌리기 위해서입니다. – Luksprog

답변

0

정말 고마워요. 작업은 onCreateView 메서드를 onActivityCreated으로 변경하여 성공적으로 수행됩니다. 이제 응용 프로그램은 매력처럼 작동합니다.

감사합니다.