Android layout 根据列表填写列表视图

Android layout 根据列表填写列表视图,android-layout,android-fragments,android-listview,fragment,Android Layout,Android Fragments,Android Listview,Fragment,我是StackOverflow的新手,这是我的第一个问题。 我一直在到处寻找帮助,但没有找到任何适合我的 我正在使用Android Studio 0.8.14,我想根据从SQLite获得的项目列表填充一个列表视图,每个人都说我应该使用ArrayAdapter,但这对我不起作用,有人能帮我吗 以下是我构建项目列表的方式: //获取所有项目 公共列表getAllItems{ SQLiteDatabase db=this.getReadableDatabase; Listitems=newarray

我是StackOverflow的新手,这是我的第一个问题。 我一直在到处寻找帮助,但没有找到任何适合我的

我正在使用Android Studio 0.8.14,我想根据从SQLite获得的项目列表填充一个列表视图,每个人都说我应该使用ArrayAdapter,但这对我不起作用,有人能帮我吗

以下是我构建项目列表的方式:

//获取所有项目 公共列表getAllItems{ SQLiteDatabase db=this.getReadableDatabase; Listitems=newarraylist; String selectQuery=SELECT*FROM+TABLE\u项; 游标c=db.rawQueryselectQuery,null; //循环遍历所有行并添加到列表 如果c.moveToFirst{ 做{ 项目it=新项目; it.setIdc.getIntc.getColumnIndexKEY\u ID; it.setNamec.getStringc.getColumnIndexKEY\u名称; it.setDescriptionc.getStringc.getColumnIndexKEY\u说明; it.setprice c.getdouble c.getColumnIndexKEY\u PRICE; it.setAdd_infoc.getStringc.getColumnIndexKEY_ADD_INFO; it.category\u id=c.getIntc.getColumnIndexKEY\u ITEM\u category; it.素食者=c.getIntc.getColumnIndexKEY\u素食者; it.sustainable=c.getIntc.getColumnIndexKEY\u sustainable; it.vegan=c.getIntc.getColumnIndexKEY\u vegan; it.freezed=c.getIntc.getColumnIndexKEY\u freezed; it.glutn_free=c.getIntc.getColumnIndexKEY_glutn_free; it.gm_free=c.getIntc.getColumnIndexKEY_gm_free; //添加到项目列表 项目1.addit; }而c.moveToNext; } 退货项目;
} 将视图层次结构加载到片段中的方式比将其加载到活动中的方式更重要。请尝试以下方法:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout. list, container, false);
    // You have to call findViewById on rootView, since the fragment doesn't know
    // what your views are until you return rootView from this function
    listView = (ListView) rootView.findViewById(R.id.itemList);

    allItems = db.getAllItems();
    Activity activity = (Activity) container.getContext();
    ArrayAdapter < Item > arrayAdapter = new ArrayAdapter < Item > (activity, android.R.layout.simple_list_item_1,
      allItems);
    listView.setAdapter(arrayAdapter);
    return rootView;
}
编辑:


对不起,我错过了类型差异。出现构造函数错误的原因是列表参数的模板类型需要与ArrayAdapter的模板类型匹配。我已经修复了上面的代码,将arrayAdapter的类型更改为arrayAdapter,以匹配allItems的类型,这是一个列表

,最后我的问题的解决方案是创建我自己的适配器,并基于@Bruce的帮助更改MainActivity.java,如下所示:

公共片段getItemint索引{ 如果索引>=0&&index}我已经试过了。这里:activity,android.R.layout.simple\u list\u item\u 1,allItems;我收到一个错误消息:无法解析构造函数“ArrayAdapterandroid.app.Activity,int,java.util.List”,我被困在这里太久了,不知道该怎么办!