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으로 시작하고 일부가 컬렉션의 첫 번째 값으로 1로 시작하는 문제가 있는지 확인 했습니까? – bofredo
0과 1을 모두 확인했습니다. 같은 문제가있는 친구입니다. – Gunaseelan
나를 괴롭히는 한 가지 이유는 팽창 된 뷰에서만 배경을 '슈퍼'콜에서보기로 되돌리기 위해서입니다. – Luksprog