为什么在onActivityResult中定义一个对象是否有意义?

时间:2017-08-19 11:01:15

标签: java android android-progressbar onactivityresult

我的片段中有四个progress,我在onActivityResult中定义它们,如:

 if (requestCode == GALLERY_IMAGE1 && resultCode == Activity.RESULT_OK) {
        ProgressBar progress = view.findViewById(R.id.progressBar1);
        final Uri imageUri = data.getData();
        InputStream imageStream = null;
        try {
            imageStream = getActivity().getContentResolver().openInputStream(imageUri);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
        bitmap = selectedImage;
        image1.setImageBitmap(bitmap);
        Log.d(TAG, "onActivityResult: " + progress.getVisibility());
        editPhoto("imageName1", progress);
    }
    if (requestCode == GALLERY_IMAGE2 && resultCode == Activity.RESULT_OK) {
        ProgressBar progress = view.findViewById(R.id.progressBar2);
        /* bunch of code */
        editPhoto("imageName2", progress);
    }

在我的日志行中:Log.d(TAG, "onActivityResult: " + progress.getVisibility());我得到0值,表示GONE

当我尝试在我的editPhoto方法中显示它时,如:

private void editPhoto(final String imagePosition, final ProgressBar progress) {

        progress.setVisibility(View.VISIBLE);
        Log.d(TAG, "progress: " + progress.getVisibility());

/* bunch of code */

}

我的进度不可见并且在我的日志行Log.d(TAG, "progress: " + progress.getVisibility());中,我得到与上面相同的值0

我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

好吧,谢谢@MikeM,我的观点行为堕落,我的进展在frameLayout中如下:

<FrameLayout
                android:layout_width="150dp"
                android:layout_height="150dp"
                android:layout_gravity="left"
                android:layout_weight="1"
                android:gravity="left">

                <ProgressBar
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:id="@+id/progressBar4"
                    android:visibility="gone"/>
            <ImageView
                android:id="@+id/editImage4"
                android:layout_width="150dp"
                android:layout_height="150dp"
                android:layout_gravity="right"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:scaleType="fitXY"
                app:srcCompat="@drawable/ic_add_images" />

            </FrameLayout>

我改为:

<FrameLayout
                android:layout_width="150dp"
                android:layout_height="150dp"
                android:layout_gravity="left"
                android:layout_weight="1"
                android:gravity="left">


            <ImageView
                android:id="@+id/editImage4"
                android:layout_width="150dp"
                android:layout_height="150dp"
                android:layout_gravity="right"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_marginTop="5dp"
                android:scaleType="fitXY"
                app:srcCompat="@drawable/ic_add_images" />

                <ProgressBar
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal|center_vertical"
                    android:id="@+id/progressBar4"
                    android:visibility="gone"/>

            </FrameLayout>

我不知道frameLayout是否受此行为影响。

答案 1 :(得分:0)

从xml中删除jqMyDiv.on( 'keydown', function( e ){ if( ! e.shiftKey && ! e.altKey && ! e.ctrlKey ){ console.log( e ); if( e.originalEvent.code === 'F9' ){ // do something } } }); 行,并在java文件中以编程方式执行。