Android Studio - 片段onClickListener无法正常工作

时间:2017-01-29 22:42:55

标签: java android android-studio android-fragments onclicklistener

在查看每个可能的答案后,我找不到我的代码有什么问题。

我需要在3个片段上有一个OnClickListener,其中一个片段由mainActivity加载。他们都没有工作。我已经在每个片段上实现了OnClickListener。

这是我的代码:

RequestFragment1.java

<div id="bill">
    <h2>Bill</h2>
    <ul id="items"></ul>
    <ul id="price"></ul>
</div>

fragment_request1.xml

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    view = inflater.inflate(R.layout.fragment_request1, container, false);
    Button buttonRequest1 = (Button) view.findViewById(R.id.Request1Button);
    buttonRequest1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            String url = "https://www.google.ca/";
            WebView httpRequestResult = (WebView) getActivity().findViewById(R.id.webViewResult);
            httpRequestResult.getSettings().setJavaScriptEnabled(false);
            httpRequestResult.loadUrl(url);
            getActivity().setContentView(R.layout.requests_webview);
        }
    });
    return view;
}

MainActivity.java

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <Button
        android:id="@+id/Request1Button"
        android:layout_width="match_parent"
        android:layout_height="90dp"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:text="Requête 1" />

</RelativeLayout>

需要按下Request1Button打开webview。

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

setContentView(R.layout.fragment_request1);

MainActivity.onCreate()中的这一行夸大了名为fragment_request1的XML文件中定义的布局。但是,创建片段。因此,永远不会调用RequestFragment1.onCreateView(),并且永远不会设置OnClickListener

您需要正确创建片段并使用FragmentManager加载它。有许多在线教程展示了如何执行此操作。我建议从Android开发者网站上的那个开始。