ImageView在DialogFragment中不可点击。

问题描述 投票:0回答:1

我有一个ImageView,我想为它实现onClickListener。但是当我点击图片时,什么都没有发生。Logcat的事件没有显示任何错误。有些事情发生在clickability属性上。

我的XML代码。

    <ImageView
        android:id="@+id/img2"
        android:layout_width="104dp"
        android:layout_height="126dp"
        android:layout_weight="1"
        android:padding="8dp"
        android:scaleType="centerCrop"
        android:clickable="true"
        android:src="@drawable/ic_person_black_24dp"
        tools:ignore="MissingConstraints"
        tools:layout_editor_absoluteX="-3dp"
        tools:layout_editor_absoluteY="14dp"
        android:focusable="true" />

代码在片段中。

public class DialogFrag extends DialogFragment {

    private ImageView img2;
    private static final int IMAGE_PICK_CODE = 1000;
    private final int CODE_MULTIPLE_IMG_GALLERY = 2;
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @NonNull
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.dialog_layout, container, false);
        img2 = (ImageView) view.findViewById(R.id.img2);
        img2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Intent.ACTION_PICK);
                intent.setType("image/*");
                startActivityForResult(intent, IMAGE_PICK_CODE);
            }
        });

        return view;
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        int CODE_IMG_GALLERY = 1;
        if (requestCode == CODE_IMG_GALLERY && resultCode == RESULT_OK) {

            Uri imageUri = data.getData();
            if(imageUri!=null){
                img2.setImageURI(imageUri);
            }
        }
        if (requestCode == CODE_IMG_GALLERY && resultCode == RESULT_OK) {

            Uri imageUri = data.getData();
            if(imageUri!=null){
                img2.setImageURI(imageUri);
            }
        }
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
        return builder

                .setTitle("Заполните анкету")

                .setView(R.layout.dialog_layout)
                .setPositiveButton("OK", null)
                .setNegativeButton("Отмена", null)
                .create();
    }
}

我的错误在哪里?)

java android android-dialogfragment
1个回答
0
投票

请覆盖 onViewCreated() 并使用 观点 对象

kotlin代码。

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    img2 = view.findViewById(R.id.img2);
    // Implement onclicklistener
}

我想这应该会有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.