gridview刷新问题

ruikaka16 2014-07-01 02:36:06
有两个Activity A和B,从A进入B,选择需要的图片并返回一组图片的地址到A,但是返回A后gridview上的图片不显示,如果激活虚拟键盘或者锁屏再打开后,图片就显示了,请大家指点一下。副上B的代码:
public class AddProductActivity extends Activity{

GridView gridView;
private String image;
private static final int GALLERY_REQUEST = 9390;
private static final int IMAGE_RESULT = 9392;
private DisplayImageOptions options;
ImageLoader imageLoader;
private ArrayList<String> selectImageUrls;
String[] f;
private SelectImageAdapter selectImageAdapter;
ImageView imageView;

@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_product);

final ActionBar actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);

options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_launcher)
.showImageOnFail(R.drawable.ic_error_loadingsmall)
.cacheInMemory().cacheOnDisc().build();

gridView = (GridView) findViewById(R.id.select_image_gridview);
this.selectImageUrls = new ArrayList<String>();
}

public void onResume(){
super.onResume();
Log.d("AddPorductAcivity", "onResume");
if(selectImageAdapter==null){
Log.d("AddPorductAcivity", "null");
return;
}else{
Log.d("AddPorductAcivity", "not null");
selectImageAdapter.notifyDataSetChanged();
}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.add_product, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(AddProductActivity.this,
MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
case R.id.action_upload_picture:
return true;
default:
return super.onOptionsItemSelected(item);
}
}

public void onTakenPic(MenuItem item) {
// 调用相机
Intent cameraintent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
try {
File file = new File(Environment.getExternalStorageDirectory()
.toString() + "/NavigationDrawer/ScanImage.png");
cameraintent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(cameraintent, 0);
} catch (Exception e) {
Log.e("相机", "保存路径不存在");
e.printStackTrace();
}
}

public void onSelectFromSD(MenuItem item) {
// 调用系统相册选择
// Intent gallery = new Intent(ACTION_PICK, EXTERNAL_CONTENT_URI);
// startActivityForResult(gallery, GALLERY_REQUEST);
Intent selectFromSdcard = new Intent(AddProductActivity.this,
Sdcard.class);
startActivityForResult(selectFromSdcard, GALLERY_REQUEST);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("[requestCode=" + requestCode + "]" + "[resultCode="+ resultCode + "]");

if (requestCode == GALLERY_REQUEST && resultCode == IMAGE_RESULT
&& data != null) {
// image = data.getData().toString();
selectImageUrls = data.getStringArrayListExtra("select_image");
//System.out.println("返回选择的图片数量=" + selectImageUrls.size());
if (selectImageUrls != null) {
// System.out.println("返回选择的图片数量=" + selectImageUrls.size());
//f = (String[]) selectImageUrls.toArray(new String[selectImageUrls.size()]);
if (selectImageAdapter == null) {
System.out.println("selectImageAdapter是空的");
selectImageAdapter = new SelectImageAdapter(this,selectImageUrls);

gridView.setAdapter(selectImageAdapter);
selectImageAdapter.notifyDataSetChanged();

gridView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent,
View view, int position, long id) {
startFullImagePagerActivity(position);
}
});

} else {
System.out.println("selectImageAdapter不是空的");
selectImageAdapter.notifyDataSetChanged();
}

} else {
return;
}
// loadImage();
} else {
super.onActivityResult(requestCode, resultCode, data);
}

}

protected void startFullImagePagerActivity(int position) {
// TODO Auto-generated method stub
Intent i = new Intent(AddProductActivity.this,
FullScreenViewActivity.class);
i.putStringArrayListExtra("position_url", selectImageUrls);
i.putExtra("position", position);
startActivity(i);
}

public class SelectImageAdapter extends BaseAdapter {

Context mContext;
ViewHolder holder;

public SelectImageAdapter(Context context, ArrayList<String> imageList) {
// TODO Auto-generated constructor stub
mContext = context;
imageLoader = ImageLoader.getInstance();
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return selectImageUrls.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return selectImageUrls.get(position);
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
View view = convertView;
if (view == null) {
view = LayoutInflater.from(mContext).inflate(R.layout.select_image, null);
holder = new ViewHolder();
assert view != null;
holder.imageView = (ImageView) view.findViewById(R.id.select_images);
holder.spinner = (ProgressBar)view.findViewById(R.id.select_image_loading);
view.setTag(holder);
}else{
holder = (ViewHolder) view.getTag();
}

//final ViewAnimator animator = (ViewAnimator)convertView.findViewById(R.id.animator);
imageLoader.displayImage("file://" + selectImageUrls.get(position),holder.imageView,
options, new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
holder.spinner.setProgress(0);
holder.spinner.setVisibility(View.VISIBLE);
//animator.setDisplayedChild(1);
}

@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
String message = null;
switch (failReason.getType()) {
case IO_ERROR:
message = "Input/Output error";
break;
case DECODING_ERROR:
message = "Image can't be decoded";
break;
case NETWORK_DENIED:
message = "Downloads are denied";
break;
case OUT_OF_MEMORY:
message = "Out Of Memory error";
break;
case UNKNOWN:
message = "Unknown error";
break;
}
Toast.makeText(AddProductActivity.this, message,Toast.LENGTH_SHORT).show();
holder.spinner.setVisibility(View.GONE);
//animator.setDisplayedChild(0);
}

@Override
public void onLoadingComplete(String imageUri,
View view, Bitmap loadedImage) {
Animation anim =
AnimationUtils.loadAnimation(AddProductActivity.this,
R.anim.push_left_in);
holder.imageView.setAnimation(anim);
anim.start();
holder.spinner.setVisibility(View.GONE);
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current,
int total) {
holder.spinner.setProgress(Math.round(100.0f * current / total));
}
});

return view;
}

class ViewHolder {
ImageView imageView;
ProgressBar spinner;
}

}
}


...全文
89 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧