Java Android Studio:如何通过单击同一片段上的按钮在WebView中加载片段上的url

Java Android Studio:如何通过单击同一片段上的按钮在WebView中加载片段上的url,java,android,android-fragments,webview,Java,Android,Android Fragments,Webview,我用英文读答案 我试过了,成功了。但是它打开了一个新的对话框,加载了url,这并不是我想要的 我希望url直接加载到我按钮下面的WebView元素中。所以基本上我有一个片段,我有EditText,Button和WebView元素都在片段中。我想做的是单击“搜索”按钮,并将url从EditText加载到位于按钮和EditBox元素正下方的WebView中。我不希望它打开我的浏览器或新对话框 我已经成功地将一些url自动加载到WebView中,当你转到应用程序上的那个片段时,但是当我试图在点击按钮时

我用英文读答案

我试过了,成功了。但是它打开了一个新的对话框,加载了url,这并不是我想要的

我希望url直接加载到我按钮下面的WebView元素中。所以基本上我有一个片段,我有EditText,Button和WebView元素都在片段中。我想做的是单击“搜索”按钮,并将url从EditText加载到位于按钮和EditBox元素正下方的WebView中。我不希望它打开我的浏览器或新对话框

我已经成功地将一些url自动加载到WebView中,当你转到应用程序上的那个片段时,但是当我试图在点击按钮时加载一些url时,应用程序正在崩溃。在制作此线程之前,我已经尝试过多次搜索此问题修复,但似乎没有人有相同的问题

以下是我的fragment_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main">

    <!-- TODO: Update blank fragment layout -->

    <WebView
        android:id="@+id/webV"
        android:layout_width="match_parent"
        android:layout_height="463dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="0dp"
        android:layout_marginLeft="0dp"
        android:layout_marginTop="48dp" />

    <Button
        android:id="@+id/searchBtn"
        android:layout_width="99dp"
        android:layout_height="43dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginTop="0dp"
        android:layout_marginEnd="7dp"
        android:layout_marginRight="7dp"
        android:text="@string/search" />

    <EditText
        android:id="@+id/SVbox"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/search_url"
        android:inputType="text|textPersonName"
        android:autofillHints="" />

</RelativeLayout>

当我点击按钮时,应用程序崩溃。。即使经过长时间的研究,我也不知道问题出在哪里。顺便说一下,我对Android Studio非常陌生,非常感谢您的帮助。

您在这里犯了错误
WebView webz=(WebView)view.findViewById(R.id.webV)
onClick(View视图)
View是被单击的按钮。所以你找不到任何
Webview
EditText
。 在
onClick
内部,您可以在
btn.setOnClickListener
之前将
web
设置为final并初始化
et
,而不是初始化
webz
et

下面是适用于您的
onCreateView
的更新代码

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_main, container, false);

    final WebView web = (WebView) view.findViewById(R.id.webV);
    web.setWebViewClient(new WebViewClient());
    web.loadUrl("http://randomsite.com");
    final Button btn = (Button) view.findViewById(R.id.searchBtn);
    final EditText et = (EditText) view.findViewById(R.id.SVbox);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            web.loadUrl(et.getText().toString());
        }
    });
    return view;

}

您在这里犯了错误
WebView webz=(WebView)view.findViewById(R.id.webV)
onClick(View视图)
View是被单击的按钮。所以你找不到任何
Webview
EditText
。 在
onClick
内部,您可以在
btn.setOnClickListener
之前将
web
设置为final并初始化
et
,而不是初始化
webz
et

下面是适用于您的
onCreateView
的更新代码

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_main, container, false);

    final WebView web = (WebView) view.findViewById(R.id.webV);
    web.setWebViewClient(new WebViewClient());
    web.loadUrl("http://randomsite.com");
    final Button btn = (Button) view.findViewById(R.id.searchBtn);
    final EditText et = (EditText) view.findViewById(R.id.SVbox);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            web.loadUrl(et.getText().toString());
        }
    });
    return view;

}