Я использую ImagePicker для выбора изображения и установки изображения в виде изображения, но изображение не отображается

#android

#Android

Вопрос:

Я выбираю файл из средства выбора изображений и пытаюсь отобразить в виде изображения, но этого не происходит, я не вижу ошибки во время выполнения, просто изображение не загружается, похоже, что onActivityResult не вызывается, но я не могу понять почему. Я попытался загрузить изображение с помощью обоих методов, используя default и с помощью picasso, но оба не работают с моим макетом

          <?xml version="1.0" encoding="utf-8"?>
         <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         xmlns:tools="http://schemas.android.com/tools"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         tools:context=".UploadActivity">
         <Button
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="choose file"
          android:id="@ id/choosefilebutton"/>
         <ImageView
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_below="@id/choosefilebutton"
         android:layout_above="@id/progressbar"
         android:id="@ id/previewIMageVIew"/>

         <ProgressBar
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_alignParentStart="true"
         android:layout_marginBottom="93dp"
         android:layout_alignParentLeft="true"
         style="@style/Widget.AppCompat.ProgressBar.Horizontal"
         android:id="@ id/progressbar"/>

         <Button
         android:id="@ id/uploadbutton"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_centerHorizontal="true"
         android:layout_marginBottom="30dp"
         android:text="Upload" />

         <TextView
         android:layout_width="wrap_content"
         android:layout_height="44dp"
         android:textSize="16sp"
         android:layout_alignParentEnd="true"
         android:layout_alignTop="@ id/uploadbutton"
         android:layout_marginEnd="45dp"
         android:text="Show Uploads"
         android:layout_alignParentRight="true"
         android:layout_marginRight="45dp"
         android:gravity="center"
         android:id="@ id/showUploadTXTview"/>

         </RelativeLayout>

    



        **My Upload Activity


         public class UploadActivity extends AppCompatActivity {
         private static final int PICK_IMAGE_REQUEST=  1;
         private Button chooseImageButton,uploadButton;
         private TextView showUploadtextview;
         private ImageView previewImageview;
         private ProgressBar progressBar;
         private Uri imageuri;



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

    chooseImageButton=findViewById(R.id.choosefilebutton);
    uploadButton=findViewById(R.id.uploadbutton);
    showUploadtextview=findViewById(R.id.showUploadTXTview);
    previewImageview=findViewById(R.id.previewIMageVIew);
    progressBar=findViewById(R.id.progressbar);


    chooseImageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
             openfilechooser();

        }
    });

    uploadButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

        }
    });
     showUploadtextview.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view) {

         }
     });

    }

     private void openfilechooser(){
     Intent intent= new Intent();
     intent.setType("image/*");
     intent.setAction(Intent.ACTION_GET_CONTENT);
     startActivityForResult(intent,111);//intent,PICK_IMAGE_REQUEST

     }

     @Override
     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
     {
     super.onActivityResult(requestCode, resultCode, data);
     if(requestCode==PICK_IMAGE_REQUEST amp;amp; requestCode ==RESULT_OK amp;amp; data!=null amp;amp; 
        data.getData()!=null){

        imageuri=data.getData();
        Log.d("Checking Log","Data inside uri" imageuri);
        //Picasso.get().load(imageuri).into(previewImageview);
        previewImageview.setImageURI(imageuri);

        }
         }
         }
  

Ответ №1:

Измените requestCode==RESULT_OK на resultCode ==RESULT_OK :

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==PICK_IMAGE_REQUEST amp;amp; resultCode ==RESULT_OK amp;amp; data!=null amp;amp;
                data.getData()!=null){

            imageuri=data.getData();
            Log.d("Checking Log","Data inside uri" imageuri);
            //Picasso.get().load(imageuri).into(previewImageview);
            previewImageview.setImageURI(imageuri);

        }
    }
  

Комментарии:

1. никаких исключений не показано, просто изображения не отображаются в виде изображения, как это было ранее с моим кодом

2. Ваш PICK_IMAGE_REQUEST= 1; и вы передаете 111 в намерении. Измените код намерения на PICK_IMAGE_REQUEST. Тогда это должно сработать

3. нет, это не работает, я просто проверял с помощью 111, потому что, если нашел его в Интернете, кстати, 111 — это также номер ve, так что это должно иметь какое-то значение?

4. requestCode == RESULT_OK это должно быть resultCode == RESULT_OK