Java 从片段打开活动,但继续关闭应用程序

Java 从片段打开活动,但继续关闭应用程序,java,android,Java,Android,我试图通过ImageButton从片段打开活动,但当我打开时,它会一直关闭应用程序。android研究中没有显示错误。有什么问题吗 FragmentMicrosoft.java public class FragmentMicrosoft extends Fragment { View view; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nul

我试图通过
ImageButton
片段
打开
活动
,但当我打开时,它会一直关闭应用程序。android研究中没有显示错误。有什么问题吗

FragmentMicrosoft.java

public class FragmentMicrosoft extends Fragment {
    View view;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
            @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.microsoft_fragment, container, false);
        return view;
    }

    public FragmentMicrosoft() {
    }

    public void clickMSWORD(View view) {
        Intent intent = new Intent(getActivity(), activity_word.class);
        startActivity(intent);
    }
}
这就是
ImageButton
的定义方式:

<ImageButton
    android:id="@+id/wordbtn"
    android:background="@drawable/word_background"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="20dp"
    android:layout_marginBottom="20dp"
    android:layout_marginRight="5dp"
    android:src="@drawable/word_logo"
    android:onClick="clickMSWORD" />

重写onResume()并从xml获取对ImageView的引用

ImageView ImageView=(ImageView)findViewById(R.id.wordBtn)


让我知道它是否有效

您不能使用android:onClick=“clickMSWORD”调用fragment的方法。这样我们就可以调用activity的方法。按照以下选项调用
单击msword

选项-1:
onCreateView
中初始化视图,并启动
onClickListener

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    view = inflater.inflate(R.layout.microsoft_fragment, container, false);

    ImageButton imageButton = view.findViewById(R.id. wordbtn);
    imageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            //from here call clickMSWORD or implement logic
            clickMSWORD(v);
        }
    });

    return view;
}
选项-2:
活动中添加方法,并在片段中使用片段实例调用方法

Fragment fragmentMicrosoft;    

//Either onCreate or anywhere initialize your fragment before using it.

public void clickMSWORD(View v) {
    fragmentMicrosoft.clickMSWORD(v);
}

贴上带有错误的stacktrace,非常感谢,先生。选项1适合我。上帝保佑!:)