我有一個MultiplePhotoSelectActivity.java
讓用戶選擇多張照片並將路徑存儲在ArrayList中。Android如何在Arraylist中顯示意圖從另一個活動中的圖像?
public void btnChoosePhotosClick(View v){
ArrayList<String> selectedItems = imageAdapter.getCheckedItems();
if (selectedItems!= null && selectedItems.size() > 0) {
//Toast.makeText(MultiPhotoSelectActivity.this, "Total photos selected: " + selectedItems.size(), Toast.LENGTH_SHORT).show();
Log.d(MultiPhotoSelectActivity.class.getSimpleName(), "Selected Items: " + selectedItems.toString());
Intent intent = new Intent(MultiPhotoSelectActivity.this,PreuploadActivity.class);
intent.putStringArrayListExtra("selectedItems", selectedItems);
setResult(RESULT_OK, intent);
startActivity(intent);
}
}
這是來ArrayList<String> selectedItems
從imageAdapter
ArrayList<String> getCheckedItems() {
ArrayList<String> mTempArry = new ArrayList<>();
for(int i=0;i<mImagesList.size();i++) {
if(mSparseBooleanArray.get(i)) {
mTempArry.add(mImagesList.get(i));
}
}
return mTempArry;
}
用戶後選擇照片,下面的結果將出現在logcat的
d/MultiPhotoSelectActivity:選定的項目:[/存儲/模擬/ 0 /圖片/ Screenshot_1486795867.png,/storage/emulated/0/Pictures/15592639_1339693736081458_1539667284_n.jpg,/storage/emulated/0/15592639_1339693736081458_1539667284_n.jpg ]
現在的問題是,我想用在數組列表中的文件路徑在我的另一項活動來顯示圖像,之後用戶選擇圖像
這裏是PreuploadActivity.java
應該是收到的意圖數據。 這是按鈕,讓用戶選擇照片MultiplePhotoSelectActivity.java
//this button will open gallery,and select photo
addPhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(PreuploadActivity.this,MultiPhotoSelectActivity.class);
startActivityForResult(intent,PICK_IMAGE_REQUEST);
}
});
這是onActivityResult()
應從MultiplePhotoSelectActivity.java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data.getData() !=null){
ArrayList<String> selectedItems = data.getStringArrayListExtra("selectedItems");
for(String selectedItem : selectedItems){
Uri filePath = Uri.parse(selectedItem);
try{
// bimatp factory
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
bitmap = BitmapFactory.decodeFile(filePath.getPath(),
options);
//Setting image to ImageView
ImageView imageView = new ImageView(getApplicationContext());
LinearLayout.LayoutParams layoutParams =
new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
imageView.setLayoutParams(layoutParams);
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setPadding(0, 0, 0, 10);
imageView.setAdjustViewBounds(true);
imageView.setImageBitmap(bitmap);
linearMain.addView(imageView);
}catch (Exception e) {
e.printStackTrace();
}
}
接收意向的資料,因此現在的PreuploadActivity.java
onActivityResult()
我不能顯示後面的圖像在從MultiplePhotoSelectActivity.java
發送的ArrayList中。當putExtra處於意圖中時,我懷疑是錯誤的,迄今爲止我嘗試過但仍然沒有什麼不同。
The answer of this Stackoverflow question
putParcelable or putSerializable like the answer
How to transfer a Uri image from one activity to another?
所以我需要知道,
1)我應該如何putExtra和getExtra中,爲了在這兩個活動的意圖發送和接收圖像的ArrayList?
2)是我的把手來顯示圖像是否正確?如果沒有,請告訴我,我做錯了。
編輯:嘗試爲阿斯拉姆Hossin解決 後,我想這
ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("selectedItems ");