我有两个活动ItemListActivity
和ItemDetailsActivity
,并使用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);
}
}
答案 0 :(得分:1)
进入详细活动时保存点击位置,当您返回列出活动时,替换阵列列表中该位置的更新数据。请参阅以下代码:
arraylist.set(clickPosition,newData);
adapter.notifyDataSetchanged();