Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中更新ImageView_Java_Android_Android Fragments - Fatal编程技术网

Java 在Android中更新ImageView

Java 在Android中更新ImageView,java,android,android-fragments,Java,Android,Android Fragments,我有一个主要活动,上面只有一些片段 我正在尝试使用Gallery更改片段中的ImageView。但一旦选择了映像,MainActivity就会得到刷新,从而将MainActivity更改回默认片段 获得许可 textViewChangeImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG

我有一个主要活动,上面只有一些片段

我正在尝试使用Gallery更改片段中的ImageView。但一旦选择了映像,MainActivity就会得到刷新,从而将MainActivity更改回默认片段

获得许可

 textViewChangeImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.d(TAG,"Select Image executed");

            requestPermissions(
                    new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                    REQUEST_CODE);



        }
    });
 @Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    Log.d(TAG,"Select Image Permission executed");

    if(requestCode == REQUEST_CODE){
        progressDialogUploadDp.setMessage("Uploading...");
       progressDialogUploadDp.show();

        if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
            Intent intent = new Intent(Intent.ACTION_PICK);
            intent.setType("image/*");
            intent.putExtra("imageUpdate","true");
            startActivityForResult(intent,REQUEST_CODE);
        }else{
            Toast.makeText(getActivity(), "No Permission Granted", Toast.LENGTH_SHORT).show();
        }
        return;
    }

    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
应请求许可

 textViewChangeImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.d(TAG,"Select Image executed");

            requestPermissions(
                    new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                    REQUEST_CODE);



        }
    });
 @Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    Log.d(TAG,"Select Image Permission executed");

    if(requestCode == REQUEST_CODE){
        progressDialogUploadDp.setMessage("Uploading...");
       progressDialogUploadDp.show();

        if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
            Intent intent = new Intent(Intent.ACTION_PICK);
            intent.setType("image/*");
            intent.putExtra("imageUpdate","true");
            startActivityForResult(intent,REQUEST_CODE);
        }else{
            Toast.makeText(getActivity(), "No Permission Granted", Toast.LENGTH_SHORT).show();
        }
        return;
    }

    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
论活动结果

 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK && data != null){

        try {
        Uri uri = data.getData();

        StorageReference filepath =
                storageReference.child("Photos").child("DPs").child(ID).child("profilepicture.jpg");
            InputStream inputStream = getActivity().getContentResolver().openInputStream(uri);

            Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
            imageviewpropic.setImageBitmap(bitmap);

            filepath.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

                    progressDialogUploadDp.hide();
                    progressDialogUploadDp.dismiss();


                }
            });

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }


    }

返回表格库,活动将在ActivityResult上运行,然后在Resume上运行。
因此,您可以在onActivityResult上设置一个标志,并在onResume中设置一个IF来设置片段。

根据您所说的,您的活动似乎正在调用onCreate方法并再次设置默认片段。只有在没有保存状态时,才能在onCreate()中创建新片段

if(savedInstanceState==null) setFragment(fragment);

签入开发人员设置已选择“不保留活动”,因为如果此选项为enabledYes,则会发生此问题。请为整个活动提供代码。也照Akshay说的做,这可能有助于添加活动代码!是的,这似乎就是问题所在。我尝试添加if(savedInstanceState==null),但是默认的片段代码仍然得到执行。