Android 适配器附加项在函数中不起作用 public类TabBooklist扩展片段{ /* */ //DB中的变量使用-> int nCount=1; sqlitedb数据库; BookListDBHelper; 列表视图列表视图; BookListShowAdapter适配器; @凌驾 创建视图上的公共视图(布局、充气机、视图组容器、, Bundle savedInstanceState){ 视图根视图=充气机。充气(R.layout.tab\u图书列表,容器,false); /*(XML)*/ adapter=新BookListShowAdapter(getContext()); listview=(listview)rootView.findViewById(R.id.lv\u book\u list); setAdapter(适配器); adapter.addItem(ContextCompat.getDrawable(getActivity(),R.drawable.ic_empty), “name1”,“author1”,1101200);//作品 adapter.addItem(ContextCompat.getDrawable(getActivity(),R.drawable.ic_empty), “name21”,“author21”,2101003);//作品 adapter.addItem(ContextCompat.getDrawable(getActivity(),R.drawable.ic_empty), “名字31”,“作者31”,101,1020);//作品 //刷新 按钮btn\u ref=(按钮)rootView.findviewbyd(R.id.btn\u刷新); btn_ref.setOnClickListener(新视图.OnClickListener(){ @凌驾 public void onClick(视图){//单击以添加 选择(); } }); 返回rootView; } //挑选 公共作废选择(){ n计数=1; db=helper.getReadableDatabase(); 游标c=db.query(“booklist”,null,null,null,null,null); while(c.moveToNext()){ int_idBook=c.getInt(c.getColumnIndex(“id_book”); int_idTree=c.getInt(c.getColumnIndex(“id_tree”); String str_title=c.getString(c.getColumnIndex(“title”); String str_author=c.getString(c.getColumnIndex(“author”); String str_imageLink=c.getString(c.getColumnIndex(“image_link”); int n_pageTotal=c.getInt(c.getColumnIndex(“page_total”); //加 adapter.addItem(ContextCompat.getDrawable(getActivity(),R.drawable.ic_empty), str_title,str_author,0,n_pageTotal);//不工作 adapter.addItem(ContextCompat.getDrawable(getActivity(),R.drawable.ic_empty), “name31”,“author31”,101,1020);//不起作用 nCount++; } } }

Android 适配器附加项在函数中不起作用 public类TabBooklist扩展片段{ /* */ //DB中的变量使用-> int nCount=1; sqlitedb数据库; BookListDBHelper; 列表视图列表视图; BookListShowAdapter适配器; @凌驾 创建视图上的公共视图(布局、充气机、视图组容器、, Bundle savedInstanceState){ 视图根视图=充气机。充气(R.layout.tab\u图书列表,容器,false); /*(XML)*/ adapter=新BookListShowAdapter(getContext()); listview=(listview)rootView.findViewById(R.id.lv\u book\u list); setAdapter(适配器); adapter.addItem(ContextCompat.getDrawable(getActivity(),R.drawable.ic_empty), “name1”,“author1”,1101200);//作品 adapter.addItem(ContextCompat.getDrawable(getActivity(),R.drawable.ic_empty), “name21”,“author21”,2101003);//作品 adapter.addItem(ContextCompat.getDrawable(getActivity(),R.drawable.ic_empty), “名字31”,“作者31”,101,1020);//作品 //刷新 按钮btn\u ref=(按钮)rootView.findviewbyd(R.id.btn\u刷新); btn_ref.setOnClickListener(新视图.OnClickListener(){ @凌驾 public void onClick(视图){//单击以添加 选择(); } }); 返回rootView; } //挑选 公共作废选择(){ n计数=1; db=helper.getReadableDatabase(); 游标c=db.query(“booklist”,null,null,null,null,null); while(c.moveToNext()){ int_idBook=c.getInt(c.getColumnIndex(“id_book”); int_idTree=c.getInt(c.getColumnIndex(“id_tree”); String str_title=c.getString(c.getColumnIndex(“title”); String str_author=c.getString(c.getColumnIndex(“author”); String str_imageLink=c.getString(c.getColumnIndex(“image_link”); int n_pageTotal=c.getInt(c.getColumnIndex(“page_total”); //加 adapter.addItem(ContextCompat.getDrawable(getActivity(),R.drawable.ic_empty), str_title,str_author,0,n_pageTotal);//不工作 adapter.addItem(ContextCompat.getDrawable(getActivity(),R.drawable.ic_empty), “name31”,“author31”,101,1020);//不起作用 nCount++; } } },android,android-studio,android-adapter,Android,Android Studio,Android Adapter,如果单击刷新按钮,然后将项目添加到列表视图中,我想这样做。 onCreateView函数中的adapter.addItem是工作的 但是在选择功能中,adapter.addItem不工作 (并且没有错误。) 数据在数据库中。(我查了一下日志) 为什么select function中的adapter.addItem不工作以及解决方案是什么 public class TabBooklist extends Fragment { /* <DB> */ //variable use in

如果单击刷新按钮,然后将项目添加到列表视图中,我想这样做。
onCreateView函数中的
adapter.addItem
工作的
但是在
选择功能中
,adapter.addItem不工作
(并且没有错误。)
数据在数据库中。(我查了一下日志)
为什么
select function
中的
adapter.addItem
不工作
以及解决方案是什么

public class TabBooklist extends Fragment {

/* <DB> */
//variable use in DB->
int nCount=1;
SQLiteDatabase db;
BookListDBHelper helper;
ListView listview ;
BookListShowAdapter adapter;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.tab_booklist, container, false);


    /* (XML) <Book list> */

    adapter = new BookListShowAdapter(getContext()) ;

    listview = (ListView) rootView.findViewById (R.id.lv_book_list);
    listview.setAdapter(adapter);

    adapter.addItem(ContextCompat.getDrawable(getActivity(), R.drawable.ic_empty),
            "name1", "author1", 110, 1200) ; //work
    adapter.addItem(ContextCompat.getDrawable(getActivity(), R.drawable.ic_empty),
            "name21", "author21", 210, 1003) ; //work
    adapter.addItem(ContextCompat.getDrawable(getActivity(),  R.drawable.ic_empty),
            "name31", "author31", 101, 1020) ; //work


    //refresh
    Button btn_ref = (Button) rootView.findViewById(R.id.btn_refresh);
    btn_ref.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) { //click to add
            select();
        }
    });

    return rootView;
}


//select
public void select() {
    nCount = 1;

    db = helper.getReadableDatabase();
    Cursor c = db.query("booklist", null, null, null, null, null, null);

    while (c.moveToNext()) {
        int int_idBook = c.getInt(c.getColumnIndex("id_book"));
        int int_idTree = c.getInt(c.getColumnIndex("id_tree"));
        String str_title = c.getString(c.getColumnIndex("title"));
        String str_author = c.getString(c.getColumnIndex("author"));
        String str_imageLink = c.getString(c.getColumnIndex("image_link"));
        int n_pageTotal = c.getInt(c.getColumnIndex("page_total"));

        //add
        adapter.addItem(ContextCompat.getDrawable(getActivity(), R.drawable.ic_empty),
                str_title, str_author, 0, n_pageTotal); //not work

        adapter.addItem(ContextCompat.getDrawable(getActivity(), R.drawable.ic_empty),
                "name31", "author31", 101, 1020) ; //not work

        nCount ++;
    }
}
}
onCreateView()内部工作是因为onCreateView()在渲染视图之前运行,允许ListView渲染项目

但是,在select()方法中,您将在呈现列表视图后添加项目


因为我不知道BookListShowAdapter.addItem()方法是什么样子,所以我只能假设您没有调用notifyDataSetChanged()。如果在BookListShowAdapter.addItem()方法的末尾调用此方法,适配器将告诉反映数据的任何视图刷新自身(包括渲染)。

如果放入虚拟项,是否不添加任何内容?
adapter.addItem(ContextCompat.getDrawable(getActivity(), R.drawable.ic_empty),
        "name1", "author1", 110, 1200) ; //work
adapter.addItem(ContextCompat.getDrawable(getActivity(), R.drawable.ic_empty),
        "name21", "author21", 210, 1003) ; //work
adapter.addItem(ContextCompat.getDrawable(getActivity(),  R.drawable.ic_empty),
        "name31", "author31", 101, 1020) ; //work