Android setItemChecked in ListFragment

Android setItemChecked in ListFragment,android,android-listview,android-listfragment,Android,Android Listview,Android Listfragment,我的列表片段代码是 public class LanguageFragment extends ListFragment { String[] language_list = new String[] { "English", "Tamil" }; ListView lv; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceSt

我的列表片段代码是

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;
}
}
公共类LanguageFragment扩展了ListFragment{
String[]language_list=新字符串[]{“英语”、“泰米尔语”};
ListView lv;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.language_碎片,容器,
假);
lv=(ListView)view.findviewbyd(android.R.id.list);
lv.setChoiceMode(ListView.CHOICE\u MODE\u SINGLE);
ArrayAdapter适配器=新的ArrayAdapter(
充气器.getContext(),android.R.layout.simple\u list\u item\u 1,
语言(列表){
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图v=转换视图;
if(convertView==null){
LayoutInflater li=(LayoutInflater)getActivity()
.getSystemService(上下文布局\充气机\服务);
v=li.inflate(android.R.layout.simple\u list\u item\u 1,空);
}               
如果(低压isItemChecked(位置)){
v、 setBackgroundColor(颜色:灰色);
}否则{
v、 setBackgroundColor(0);
}
返回super.getView(位置、v、父级);
}
};
setListAdapter(适配器);
lv.setItemChecked(1,正确);
返回视图;
}
}
这里,当我加载
片段时,我的第二行(索引1)将以
Color.DKGRAY
Color突出显示。所以我使用了
setChoiceMode
。但此代码将选择模式设置为第二行。但是当我加载
片段时,它没有以
Color.DKGRAY
颜色突出显示。当我只单击列表项时,它将以
Color.DKGRAY
Color突出显示。我不知道是什么问题。帮助我,朋友们

更新#1


我认为,
setItemChecked
在片段中不起作用,或者这不是正确的方法。

谢谢各位朋友。通过将
onCreateView
方法更改为
onActivityCreated
可以成功完成任务。现在这个应用程序就像一个魔咒


谢谢。

您是否检查了某些计数以0开头,而某些计数以1开头作为集合的第一个值是否存在问题?我同时检查了0和1。同样的问题,朋友。有一件事让我困惑,那就是为什么你在膨胀视图上设置背景,却从
super
调用返回视图?@Luksprog No friend。突出显示所选记录。如果您的意思是需要使用特定颜色突出显示所选行???,请使用自定义listview列表项选择器。