我的列表片段代码是
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;
}
}
在这里,Color.DKGRAY
当我加载Fragment
. 所以我用setChoiceMode
. 但是此代码将选择模式设置为第二行。但是Color.DKGRAY
当我加载Fragment
. 当我单击列表项时,它会以 Color.DKGRAY
颜色突出显示。我不知道有什么问题。帮帮我吧朋友。
更新#1
我认为setItemChecked
这在片段中不起作用,或者这不是正确的方法。