首页 > 解决方案 > 在不同的 Imageviews 上显示不同的文件选择器选择

问题描述

我有 5 个 ImageViews 的活动。我已经为所有这些视图设置了点击监听器。单击图像视图时,将打开一个文件选择器,并且一旦选择了图像,它就会显示在最初单击的图像视图中。我的问题是我不知道如何识别单击了哪个图像视图,从而在正确的视图上显示图像。下面是我的代码,目前只能在“硬编码”视图上显示所选图像。

public class event_creator_view_activity extends AppCompatActivity {
    private ImageView display, img1,img2,img3,img4;
    private Uri imageuri;
    private static final int PICK_IMAGE_REQUEST = 1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_event_creator_view_activity);

        display = findViewById(R.id.creator_display_image);
        img1 = findViewById(R.id.creator_img1);
        img2 = findViewById(R.id.creator_img2);
        img3 = findViewById(R.id.creator_img3);
        img4 = findViewById(R.id.creator_img4);

        display.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser();
            }
        });
        img1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser();
            }
        });
        img2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser();
            }
        });
        img3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser();
            }
        });
        img4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser();
            }
        });

    }


    private void openfileChooser(){
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(intent, PICK_IMAGE_REQUEST);
    }
    private String getFileExtension(Uri uri){
        ContentResolver cR = this.getContentResolver();
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        return mime.getExtensionFromMimeType(cR.getType(uri));
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==PICK_IMAGE_REQUEST&&resultCode==this.RESULT_OK&&data!=null&&
                data.getData()!=null){
            imageuri = data.getData();
            Picasso.get().load(imageuri).into(display);
            //  uploadFile();
        }
    }
}

标签: androidpicasso

解决方案


    public class event_creator_view_activity extends AppCompatActivity {
    private ImageView display, img1,img2,img3,img4;
    private Uri imageuri;
    private static final int PICK_IMAGE_REQUEST_ONE = 1;
    private static final int PICK_IMAGE_REQUEST_TWO = 2;
    private static final int PICK_IMAGE_REQUEST_THREE = 3;
    private static final int PICK_IMAGE_REQUEST_FOUR = 4;
    private static final int PICK_IMAGE_REQUEST_FIVE = 5;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_event_creator_view_activity);

        display = findViewById(R.id.creator_display_image);
        img1 = findViewById(R.id.creator_img1);
        img2 = findViewById(R.id.creator_img2);
        img3 = findViewById(R.id.creator_img3);
        img4 = findViewById(R.id.creator_img4);

        display.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser(PICK_IMAGE_REQUEST_ONE);
            }
        });
        img1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser(PICK_IMAGE_REQUEST_TWO);
            }
        });
        img2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser(PICK_IMAGE_REQUEST_THREE);
            }
        });
        img3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser(PICK_IMAGE_REQUEST_FOUR);
            }
        });
        img4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser(PICK_IMAGE_REQUEST_FIVE);
            }
        });

    }


    private void openfileChooser(int requestcode){
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(intent, requestcode);
    }
    private String getFileExtension(Uri uri){
        ContentResolver cR = this.getContentResolver();
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        return mime.getExtensionFromMimeType(cR.getType(uri));
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==PICK_IMAGE_REQUEST_ONE&&resultCode==this.RESULT_OK&&data!=null&&
                data.getData()!=null){
            imageuri = data.getData();
            Picasso.get().load(imageuri).into(display);
            //  uploadFile();
        }else if(requestCode==PICK_IMAGE_REQUEST_TWO&&resultCode==this.RESULT_OK&&data!=null&&
                data.getData()!=null){

            imageuri = data.getData();
            Picasso.get().load(imageuri).into(img1);

        }else if(requestCode==PICK_IMAGE_REQUEST_THREE&&resultCode==this.RESULT_OK&&data!=null&&
                data.getData()!=null){

            imageuri = data.getData();
            Picasso.get().load(imageuri).into(img2);

        }else if(requestCode==PICK_IMAGE_REQUEST_FOUR&&resultCode==this.RESULT_OK&&data!=null&&
                data.getData()!=null){

            imageuri = data.getData();
            Picasso.get().load(imageuri).into(img3);

        }else if(requestCode==PICK_IMAGE_REQUEST_FIVE&&resultCode==this.RESULT_OK&&data!=null&&
                data.getData()!=null){

            imageuri = data.getData();
            Picasso.get().load(imageuri).into(img4);
        }
    }
  }

我希望它能帮助...


推荐阅读