如果将多图像插入多图像视图

if inserting multi image into multi imageview

如果我想插入图片到imageview,比如8张图片插入8张数字imageview。我尝试了以下代码。如果我将第一个图像插入第一个 imageview 并且结果很好,不知何故存在一些问题。但是如果我继续将第二张图片插入第二张 imageview。第一个 imageview 将更改为与第二个 imageview 相同的图像。它一直在破解我的头,我的代码有什么问题?

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.fragment_create_color_qr, container, false);

    img1 = (ImageView)v.findViewById(R.id.image1);
    img2 = (ImageView)v.findViewById(R.id.image2);
    img3 = (ImageView)v.findViewById(R.id.image3);
    img4 = (ImageView)v.findViewById(R.id.image4);
    img5 = (ImageView)v.findViewById(R.id.image5);
    img6 = (ImageView)v.findViewById(R.id.image6);
    img7 = (ImageView)v.findViewById(R.id.image7);
    img8 = (ImageView)v.findViewById(R.id.image8);


    img1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openImg();
            i1 = true;
            //i2 = false; i3 = false; i4 = false;
            //i5 = false; i6 = false; i7 = false; i8 = false;
        }
    });

    img2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v2) {
            openImg();
            i2 = true;
        }
    });

    img3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openImg();
            i3 = true;
        }
    });

    img4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openImg();
            i4 = true;
        }
    });

    img5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openImg();
            i5 = true;
        }
    });

    img6.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openImg();
            i6 = true;
        }
    });

    img7.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openImg();
            i7 = true;
        }
    });

    img8.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openImg();
            i8 = true;
        }
    });

    return v;
}//end of OnCreateView

这里是方法 openImgonActivityResult

 public void openImg(){
    Intent photoPic = new Intent(Intent.ACTION_PICK);
    photoPic.setType("image/*");
    startActivityForResult(photoPic, SELECT_PHOTO);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode){
        case SELECT_PHOTO:
            if(resultCode == RESULT_OK){

                Uri selectedImage = data.getData();
                img1.setImageURI(selectedImage);
                InputStream imageStream = null;

                try {
                    //getting the image
                    imageStream = getActivity().getContentResolver().openInputStream(selectedImage);
                    imageStream.close();
                }catch (IOException e){
                    e.printStackTrace();
                }//end try-catch


                if(i1 == true){
                    img1.setImageURI(selectedImage);
                    i1 = false;
                    b1 = true;
                }
                if(i2 == true){
                    img2.setImageURI(selectedImage);
                    i2 = false;
                    b2 = true;
                }
                if(i3 == true){
                    img3.setImageURI(selectedImage);
                    i3 = false;
                    b3 = true;
                }
                if(i4 == true){
                    img4.setImageURI(selectedImage);
                    i4 = false;
                    b4 = true;
                }
                if(i5 == true){
                    img5.setImageURI(selectedImage);
                    i5 = false;
                    b5 = true;
                }
                if(i6 == true){
                    img6.setImageURI(selectedImage);
                    i6 = false;
                    b6 = true;
                }
                if(i7 == true){
                    img7.setImageURI(selectedImage);
                    i7 = false;
                    b8 = true;
                }
                if(i8 == true){
                    img8.setImageURI(selectedImage);
                    i8 = false;
                    b8 = true;
                }
            }//end of 1st IF

            else{
            Toast.makeText(getContext(),"Fail To Get Image", Toast.LENGTH_SHORT).show();
        }

    }//end of Switch
}//end of Method

正如我所见,下面的代码是问题所在

if(resultCode == RESULT_OK){

                Uri selectedImage = data.getData();
                //below line is the problem, you are repeating this for every result remove it
                img1.setImageURI(selectedImage);
                InputStream imageStream = null;

can I know why its better to use recyclerview ?

它删除了更多您正在执行的样板代码。而且它会更像是一个动态数据。