下面的代碼更新gridView,當(dāng)我刪除自動(dòng)button。public View getView(int position, View convertView, ViewGroup parent) { final Item item = getItem(position); if (convertView == null) { convertView = LayoutInflater.from(getContext()).inflate(R.layout.custom_button, parent, false); } Button itemBtn = (Button)convertView.findViewById(R.id.itemBtn); itemBtn.setText(item.getName() + " (" + item.getPrice()+")"); itemBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { MainActivity.cart.addItem(item); } }); itemBtn.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { remove(item); notifyDataSetChanged(); return true; } }); itemBtn.setLongClickable(true); return convertView; }}但由于我也需要更新數(shù)據(jù)庫(kù),這是我現(xiàn)在的代碼。該view不會(huì)自動(dòng)更新,我還是要改變標(biāo)簽的gridView被更新和button被刪除。itemBtn.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { DBHelper dbHelper = new DBHelper(mActivity); if (dbHelper.removeData(item.getName(), item.getType()) > 1) { remove(item); notifyDataSetChanged(); } else { Toast.makeText(mActivity, "No such item to delete", Toast.LENGTH_SHORT); } dbHelper.close(); return true; }});為什么會(huì)這樣?
2 回答

繁花如伊
TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
如果沒(méi)有更新數(shù)據(jù),則在類(lèi)或片段中創(chuàng)建一個(gè)方法,長(zhǎng)按時(shí)再次加載適配器,然后調(diào)用此方法而不是 notifydatasetchanged

臨摹微笑
TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
解決了。里面的代碼if statement
不運(yùn)行。我以為我一直在檢查Toast.makeText()
并且非常確定它確實(shí)在運(yùn)行,因?yàn)?toast 不會(huì)顯示,直到我意識(shí)到我忘記調(diào)用.show()
. 抱歉犯了一個(gè)愚蠢的錯(cuò)誤,我已經(jīng)找到了問(wèn)題所在。
添加回答
舉報(bào)
0/150
提交
取消