#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