互联网按钮 link 使应用程序崩溃

Button link to internet makes app crash

我设法制作了一个导航抽屉,现在正试图让一个按钮正常工作。

代码:

public class FourthFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fourth_layout, container, false);
    }
    public void buttona1(View view){
        Intent browserIntent = new Intent(Intent.ACTION_VIEW,
                                          Uri.parse("https://www.google.nl"));
        startActivity(browserIntent);
    }
}

布局:

<Button
    android:text="Magister"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="buttona1"
    android:id="@+id/button2"
    android:visibility="visible"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

问题是当我在手机上打开应用程序并移动到按钮页面时,按下按钮应用程序将关闭并停止工作。

您应该在您的 fragment contsructor 中初始化 Context,它将在初始化 freagment 时从您的 MainActivity 传递并调用 context.startActivity(YOUR_INTENT); 希望这对你有帮助

您的代码似乎是正确的,但您需要在 activity 中创建方法 buttona1 和片段两者。 您不能从 xml 调用方法驻留在 Fragment 但不在 Activity

您可以在 onCreateView 方法中使用以下代码

    View v=inflater.inflate(R.layout.fourth_layout, container, false);
    Button myButton=(Button)v.findViewById(R.id.button2);
    myButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
    buttona1(view)
    });
return v;

也替换这一行

 startActivity(browserIntent);

getActivity().startActivity(browserIntent);