如何将 Activity 中的 ClickListener 设置为属于 Fragment 的 Button? (Android工作室Java)

How do I set a ClickListener in a Activity to a Button that belongs to a Fragment? (Android studio Java)

我需要一些帮助。我正在 android studio 上制作一个应用程序,我在片段中初始化了一个按钮。我需要在另一个 Activity 中调用此按钮并在其上设置点击侦听器。

问题是,当我这样做时,我得到了 .NullPointerExceptionError,它说对象的值为 null。

现在我尝试初始化我的片段和 Activity 中的按钮,但我不断收到该错误并且应用程序崩溃。

我需要一些帮助才能从 Fragment 调用此按钮。也许我的问题与其他问题类似,但我花了好几个小时来寻找这个问题的解决方案,但我一无所获。

在此先感谢您的帮助

由于按钮是片段的一部分,因此只适合在片段范围内定义按钮的任何 interactions/modifications。

有两种方法可以解决:

  1. 在 Fragment 本身中创建点击侦听器并从那里导航到另一个 activity。

  2. 创建一个您的 activity 实现的接口,该片段具有该接口的一个实例。单击按钮,调用接口的方法。这将使您可以控制托管片段的 activity。

    MyActivity extends AppCompatActivity implements MyClickListener {
    
        void onMyButtonClick() {
           // Navigate to another activity here
        }
    }
    
    
    MainFragment extends Fragment {
    
        private MyClickListener listener;
    
        void onAttach(Context context) {
            listener = (MyClickListener) context;
            // Now call listener.onMyButtonClick() from button's on click listener.
        }
    }
    
    interface MyClickListener {
        void onMyButtonClick();
    }