Как найти вид в активности по идентификатору из фрагмента - PullRequest
0 голосов
/ 21 мая 2019

У меня есть просмотр изображения для действия, в котором есть щелчок, чтобы показать диалог для справки, содержание диалога зависит от того, о чем фрагмент. Проблема в том, что я хочу скрыть справку imageview после конкретного фрагмента, но я не могу найти viewID из этого фрагмента изображения внутри фрагмента в setVisibility, поскольку он возвращает нулевую ссылку на объект.

Я создал открытую статическую строку для изменения содержимого диалога внутри фрагмента.

MainActivity.java

ivHelp = findViewById(R.id.ivHelp);

private void showDialog(String title, String message){
    if(title.equals("hide")){
        ivHelp.setVisibility(View.INVISIBLE);
    }
    else {
        Dialog dialog = new Dialog(MainActivity.this);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        Window window = dialog.getWindow();
        window.setBackgroundDrawableResource(android.R.color.transparent);
        dialog.setContentView(R.layout.dialog_help);
        ImageView btnClose = (ImageView) dialog.findViewById(R.id.dialog_close);
        TextView tvTitle = (TextView) dialog.findViewById(R.id.dialog_title);
        TextView tvMessage = (TextView) dialog.findViewById(R.id.dialog_message);

        tvTitle.setText(title);
        tvMessage.setText(message);

        btnClose.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });
        dialog.show();
    }
}

Фрагмент

fragmentview = inflater.inflate(R.layout.fragment_enter_car_details, container, false);

ivHelp = fragmentview.findViewById(R.id.ivHelp);
btnBook = fragmentview.findViewById(R.id.btnEnterCarDetails_Book);
btnBook.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ivHelp.performClick();
            MainActivity.dialogTitle="hide";
            FragmentTransaction ft =getActivity().getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.content_frame, new FindingWasherFragment());
            ft.commit();
        }
    });

return fragmentview;

Это занятие

Это фрагмент

Изображение - это вопросительный знак на упражнении

1 Ответ

1 голос
/ 21 мая 2019

я решил, используя это

ivHelp = ((MainActivity)getContext()).findViewById(R.id.ivHelp);

, затем

ivHelp.setVisibility(View.INVISIBLE);

работал

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...