亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQLiteDatabase 是同步的還是異步的?

SQLiteDatabase 是同步的還是異步的?

烙印99 2022-12-21 15:10:09
我有一個打開新意圖的應用程序。新意圖在數據庫中插入一些行,然后 finish(); 它并返回到第一個屏幕,數據應該已經用新行刷新了。我的代碼在執行時不起作用,但在調試時起作用……所以也許某處有些滯后……也許?如何等待查詢完成?這是我的代碼:在第一個屏幕上:設置適配器和 onResume@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {    v= inflater.inflate(R.layout.filters_fragment,container,false);    createFragmentWidgets();    myrecyclerview = (RecyclerView) v.findViewById(R.id.contact_recycleview);    recyclerAdapter = new RecyclerViewAdapterFilters(getContext(), lstFilters);    myrecyclerview.setLayoutManager(new LinearLayoutManager((getActivity())));    myrecyclerview.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL));    myrecyclerview.setAdapter(recyclerAdapter);    return v;}@Overridepublic void onResume(){  // After a pause OR at startup    super.onResume();    lstFilters = mydb.getAllFilters("BL");    recyclerAdapter.notifyDataSetChanged();}DB 類上的 getAllFilters 方法public List<Filter> getAllFilters(String type) {    List<Filter> lstFilter  = new ArrayList<>();    //hp = new HashMap();    SQLiteDatabase db = this.getReadableDatabase();    Cursor res =  db.rawQuery( "select * from " + FILTERS_TABLE_NAME+" where type='"+type+"'", null );    res.moveToFirst();    while(res.isAfterLast() == false){        lstFilter.add(new Filter (res.getInt(res.getColumnIndex(FILTERS_COLUMN_ID)),                res.getString(res.getColumnIndex(FILTERS_COLUMN_NAME)),                res.getString(res.getColumnIndex(FILTERS_COLUMN_NUMBER)),                res.getString(res.getColumnIndex(FILTERS_COLUMN_PHOTO)),                res.getString(res.getColumnIndex(FILTERS_COLUMN_TYPE))));        res.moveToNext();    }    res.close();    db.close();    return lstFilter;}有任何想法嗎?
查看完整描述

2 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

刷新列表后,調用 notifyDataSetChanged() 應該就足夠了,但是,我通常只是重置適配器:

    adapter = new ClaimListAdapter(this, thisContext, claimItems);
    mClaimList.setAdapter(adapter);


查看完整回答
反對 回復 2022-12-21
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

由于您要替換列表的內容,請調用adapter.notifyDataSetChanged()以刷新整個列表。



查看完整回答
反對 回復 2022-12-21
  • 2 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號