所以我正在實(shí)時(shí)列表視圖中工作,我需要列表視圖以在單擊按鈕時(shí)進(jìn)行更新,所以這些操作如下:private void ReloadData(){ DataList.clear(); try{ for (int i =0;i<ItemsCount;i++){ TempItem=new STRUCTS.STRUCT_ProductItem(); TempItem.setName(dbh.ReadDefine(ProductID,i+"","name")+"");//Read name if there is any set TempItem.setImgs(Uri.parse(dbh.ReadDefine(ProductID,i+"","img")+""));//Read image if there is any set TempItem.setInfo("PR"+i);//Desc Log.i("TAG", "ReloadData: "+IsOn[i]);//Is product avalible TempItem.setToggled(IsOn[i]); DataList.add(TempItem); } }catch (Exception ex){ ex.printStackTrace(); Log.e("ERRORCATCHER", "OnForLoop (Fill Product Data): "+ex.getMessage() ); } // if(!IsAdapterSet){ adapter = new LISTCUSTOM_ProductITEM(MyActivity.this,DataList); list.setAdapter(adapter); IsAdapterSet=true; }else{ try { adapter.swapItems(DataList); } catch (Exception e) { e.printStackTrace(); } }}我的自定義適配器上的SwapItems: public void swapItems(ArrayList<STRUCTS.STRUCT_ProductItem> list) throws InterruptedException { DataList=list; this.notifyDataSetChanged();}這沒(méi)有給出任何錯(cuò)誤,正如我從“日志”中看到的那樣,新項(xiàng)已成功添加,并且其數(shù)據(jù)是新的listview不會(huì)更新自己!因此,當(dāng)我單擊運(yùn)行ReloadData()的按鈕時(shí),它對(duì)列表視圖沒(méi)有任何影響...暫時(shí)正在運(yùn)行此日志: @Override public View getView(final int CPosition, @Nullable View convertView, @NonNull ViewGroup parent) { final STRUCTS.STRUCT_ProductItem Currect_Item=DataList.get(CPosition); Log.i("TAG", "View updated : "+Currect_Item.gettoggled());/*Define stuff*/ itempicture.setImageURI(Currect_Item.getImgs());/*More listview update stuff*/當(dāng)我單擊該按鈕時(shí),它不會(huì)記錄ViewUpdated,也不會(huì)更改任何listview元素但是,當(dāng)我滾動(dòng)列表視圖時(shí),因此看不到任何項(xiàng),然后向后滾動(dòng),它們的數(shù)據(jù)將被更新!當(dāng)項(xiàng)目失去可見(jiàn)性然后再次獲得它時(shí),將運(yùn)行GetView為什么Notifydatachanged不會(huì)更新UI /在自定義適配器上運(yùn)行GetView?
notifydatasetchanged后未調(diào)用getview
慕尼黑8549860
2021-04-10 18:15:01