если вставить несколько изображений в несколько изображений - PullRequest
0 голосов
/ 01 марта 2019

Если я хочу вставить изображение в imageview, например, 8 номеров изображений в 8 номеров imageview.Я попробовал следующий код.Почему-то есть некоторые проблемы, если я вставляю 1-е изображение в 1-е imageview, и результат в порядке.Но если я продолжу вставлять 2-е изображение во 2-е imageview.1-й imageview изменится на то же изображение, что и 2-й imageview.Это треснуло мою голову. В чем проблема моего кода?

enter image description here

 @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

и вот метод openImg и onActivityResult

 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

1 Ответ

0 голосов
/ 01 марта 2019

Как я могу видеть ниже, код - это проблема

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;

Могу ли я узнать, почему лучше использовать переработчик?

Это удаляет больше всего котлакод пластины вы делаете.И это будет больше динамических данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...