如何在android中更新其数据后更新并通知ListView

时间:2018-02-01 06:54:59

标签: android

我有两个活动ItemListActivityItemDetailsActivity,并使用listview和自定义适配器来显示数据视图。单击该项后,将调用ItemDetailsActivity并使用API​​更新记录。现在我回到ItemListActivity,这里我没有从API中获取数据,因为我手中有更新的数据。在这里,我只想更新listview的特定记录,而无需重新加载整个记录。如果我的过程是错误的,那么请告诉我正确的方法,因为我是Android开发的初学者。

代码:

protected void onStart() {
    super.onStart();
    String csThumbImageFld;
    try{
        final cGlobalData clsGlobal = (cGlobalData) getApplicationContext();
        csThumbImageFld = clsGlobal.getThumbImageFld();
        csThumbImageFld = csThumbImageFld == null ? "" : csThumbImageFld;
        if (!csThumbImageFld.isEmpty()) {
            s_UpdateItemView(csThumbImageFld);
        }
    }catch (Exception ex){
        cMsgHandler.s_ShowError(this,ex.getMessage(), eEnums.eErrorType.Error);
    }finally {
        csThumbImageFld = null;
    }
}

private void s_UpdateItemView(String csThumbImageFld){
        View gridView;
        ImageView imgSS;
        byte[] decodedString;
        Bitmap oImg;
        try{
            gridView = MyDL.getChildAt(m_inPosition);
            imgSS = (ImageView) gridView.findViewById(R.id.img_SS);
            if(!csThumbImageFld.isEmpty()){
                 decodedString = Base64.decode(csThumbImageFld, Base64.DEFAULT);
                 oImg = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
                 imgSS.setImageBitmap(oImg);
                 m_Adapter.notifyDataSetChanged();
             }
         }catch (Exception ex){
             cMsgHandler.s_ShowError(this,ex.getMessage(), eEnums.eErrorType.Error);
         }
 }

1 个答案:

答案 0 :(得分:1)

进入详细活动时保存点击位置,当您返回列出活动时,替换阵列列表中该位置的更新数据。请参阅以下代码:

arraylist.set(clickPosition,newData);
adapter.notifyDataSetchanged();