我正在使用通用图像加载程序库。我有一个viewpager图像库,我希望能够将当前正在查看的图像保存到SD卡。下面是我实现的按钮,但它不起作用。请帮助!!
private ViewPager gallery;
public class ImageGalleryActivity extends BaseActivity {
final String[] imageUrls = bundle.getStringArray(Extra.IMAGES);
.....
findViewById(R.id.btnSave).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int index = gallery.getCurrentItem();
ImageView img = imageUrls.get(index);
saveimage(img);
Toast.makeText(ImageGalleryActivity.this, "Image Successfully Saved", Toast.LENGTH_LONG).show();
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://Pictures"
+ Environment.getExternalStorageDirectory())));
}
});
...
}
答案 0 :(得分:0)
确保在应用清单中添加了相应的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
答案 1 :(得分:0)
Bundle通常用于在各种android活动之间传递数据。这取决于您想要传递的值的类型,但bundle可以包含所有类型的值并传递给新活动。
您可以像这样使用它,
Intent intent = new Intent(getApplicationContext(),ActivityName.class);
intent.putExtra("myKey",AnyValue);
startActivity(intent);
现在您可以通过...获取传递的值
Bundle extras = intent.getExtras();
String tmp = extras.getString("myKey");
在
之后的onCreate方法中有下面的行public class MyActivity extends Activity
{
private static String imageURL;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageUrls = bundle.getStringArray(Extra.IMAGES);
}}
答案 2 :(得分:0)
我最好的解决方案是不要通过bundle将任何东西传递给另一个活动。 而是使用这个类,
public class MyGetSetMethod()
{
String[] imageURLS;
public void setImageURLS (String[] imageUrls)
{
this.imageURLS = imageUrls;
}
public String[] getImageURLS()
{
return imageURLS;
}
}
现在在你的ImagePagerActivity上,
MyGetSetMethod.setImageURLS(imageURLS);
在ImageGalleryActivity上,
String[] ImageURLS = MyGetSetMethod.getImageUrls();
应该这样做。