Android如何在Arraylist中显示来自另一个活动的意图的图像?

ken

我有一个MultiplePhotoSelectActivity.java让用户选择多张照片并将路径存储在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:选定的项目:[/storage/emulated/0/Pictures/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()应该从中接收Intent数据的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();

            }


        }

所以现在onActivityResult()PreuploadActivity.java我不能在发送该ArrayList中显示后面的图像MultiplePhotoSelectActivity.java。我怀疑是什么问题时putExtra的意图,我试过至今却依然没有什么不同。

这个Stackoverflow问题的答案

像答案一样的putParcelable或putSerializable

如何将Uri图像从一项活动转移到另一项活动?

所以我需要知道的是

1)我应该如何在两个Activity中放置putExtra和getExtra,以便发送和接收图像的ArrayList?

2)显示图像的手柄是否正确?如果不正确,请告诉我我做错了什么。

编辑:尝试了Aslam Hossin解决方案后,我尝试了此

ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("selectedItems ");

我收到以下错误 来自Android Studio的警告

ken

查看一些文档后,我发现我犯了一些错误

MultiPhotoSelectActivity.java

Intent intent = new Intent(MultiPhotoSelectActivity.this,PreuploadActivity.class);
    intent.putStringArrayListExtra("selectedItems", selectedItems);
    setResult(RESULT_OK, intent);
    startActivity(intent);

我发现,以上代码有3个错误,

1)MultiPhotoSelectActivity.java不应输入新的意图,而应将数据发送回PreuploadActivity.java

2)我应该像这样设置结果

setResult(Activity.RESULT_OK, data);

3)根据以下文档,所以我在finish()之后添加setResult()

仅在调用finish()后才返回数据。您需要在调用finish()之前先调用setResult(),否则将不会返回任何结果。

我在结果码的设置解决它PreuploadActivity.java像下面

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode == PICK_IMAGE_REQUEST && resultCode == Activity.RESULT_OK ){
       //setting Activity.RESULT_OK  


            ArrayList<String> selectedItems = data.getStringArrayListExtra("selectedItems");

这是MultiPhotoSelectActivity.java我做的以下更改

    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());
        final Intent data = new Intent();
        data.putStringArrayListExtra("selectedItems", selectedItems);
        setResult(Activity.RESULT_OK, data);
        finish();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android:如何在列表中的OnItemLongClick上显示来自另一个ArrayList的数据

来自分类Dev

拍照后如何在另一个活动中显示图像?

来自分类Dev

如何在Android中从一个活动向另一个活动发送和接收ArrayList?

来自分类Dev

如何从图库中选择图像并显示在另一个活动的android中?

来自分类Dev

如何在Android中更改另一个活动的文本视图和图像视图

来自分类Dev

如何在另一个活动文本视图中显示来自asyntask的数据?

来自分类Dev

在另一个活动中显示捕获的图像

来自分类Dev

如何在Android 4.4.2中的另一个对话框活动上显示对话框活动?

来自分类Dev

FCM如何显示来自另一个活动中的通知点击的数据

来自分类Dev

如何在Xamarin Android中将图像从一个活动传递到另一个活动?

来自分类Dev

Android相机意图使用另一个活动

来自分类Dev

Android活动-如何在android中打开另一个活动?

来自分类Dev

如何在另一个活动中传递类对象的arrayList?

来自分类Dev

Android-如何在一个活动中显示进度条,直到上传任务在另一个活动中完成

来自分类Dev

使用意图传递文件路径,但是如何在另一个活动中获取每个文件的路径?

来自分类Dev

在jQuery中单击图像后如何在另一个div中显示图像

来自分类Dev

如何在android另一个活动的操作栏上显示后退按钮

来自分类Dev

如何在另一个活动中显示单击的列表视图项

来自分类Dev

如何在另一个活动中显示不同的字符串?

来自分类Dev

如何在laravel中基于Auth用户显示来自另一个表的数据

来自分类Dev

如何在同一活动中的另一个视图之上显示一个视图

来自分类Dev

如何在同一活动中的另一个视图之上显示一个视图

来自分类Dev

如何在Android中的另一个活动中更新表

来自分类Dev

加载Webview后如何在android中启动另一个活动?

来自分类Dev

Android如何在“活动”后堆栈“树”中“跳转到另一个分支”?

来自分类Dev

加载Webview后如何在android中启动另一个活动?

来自分类Dev

我们如何在Android中另一个Java类的静态方法中访问活动类的ArrayList对象?

来自分类Dev

如何将图像从一个活动动态传递到另一个活动,并通过JSON在imageview中显示

来自分类Dev

从对象arraylist获取值并将其显示在另一个活动中

Related 相关文章

  1. 1

    Android:如何在列表中的OnItemLongClick上显示来自另一个ArrayList的数据

  2. 2

    拍照后如何在另一个活动中显示图像?

  3. 3

    如何在Android中从一个活动向另一个活动发送和接收ArrayList?

  4. 4

    如何从图库中选择图像并显示在另一个活动的android中?

  5. 5

    如何在Android中更改另一个活动的文本视图和图像视图

  6. 6

    如何在另一个活动文本视图中显示来自asyntask的数据?

  7. 7

    在另一个活动中显示捕获的图像

  8. 8

    如何在Android 4.4.2中的另一个对话框活动上显示对话框活动?

  9. 9

    FCM如何显示来自另一个活动中的通知点击的数据

  10. 10

    如何在Xamarin Android中将图像从一个活动传递到另一个活动?

  11. 11

    Android相机意图使用另一个活动

  12. 12

    Android活动-如何在android中打开另一个活动?

  13. 13

    如何在另一个活动中传递类对象的arrayList?

  14. 14

    Android-如何在一个活动中显示进度条,直到上传任务在另一个活动中完成

  15. 15

    使用意图传递文件路径,但是如何在另一个活动中获取每个文件的路径?

  16. 16

    在jQuery中单击图像后如何在另一个div中显示图像

  17. 17

    如何在android另一个活动的操作栏上显示后退按钮

  18. 18

    如何在另一个活动中显示单击的列表视图项

  19. 19

    如何在另一个活动中显示不同的字符串?

  20. 20

    如何在laravel中基于Auth用户显示来自另一个表的数据

  21. 21

    如何在同一活动中的另一个视图之上显示一个视图

  22. 22

    如何在同一活动中的另一个视图之上显示一个视图

  23. 23

    如何在Android中的另一个活动中更新表

  24. 24

    加载Webview后如何在android中启动另一个活动?

  25. 25

    Android如何在“活动”后堆栈“树”中“跳转到另一个分支”?

  26. 26

    加载Webview后如何在android中启动另一个活动?

  27. 27

    我们如何在Android中另一个Java类的静态方法中访问活动类的ArrayList对象?

  28. 28

    如何将图像从一个活动动态传递到另一个活动,并通过JSON在imageview中显示

  29. 29

    从对象arraylist获取值并将其显示在另一个活动中

热门标签

归档