【发布时间】:2018-12-14 14:22:40
【问题描述】:
我在this thread阅读了答案
我试过了,它奏效了。但它所做的是它打开了一个加载了 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>
在 Main.java(我的片段的 java 文件)中我尝试了这个:
package com.something.Something;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
/**
* A simple {@link Fragment} subclass.
*/
public class Main extends Fragment {
public Main() {
//Required empty public constructor
}
@Override
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);
WebView web = (WebView) view.findViewById(R.id.webV);
web.setWebViewClient(new WebViewClient());
web.loadUrl("http://randomsite.com");
Button btn = (Button) view.findViewById(R.id.searchBtn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText et = (EditText) view.findViewById(R.id.SVbox);
WebView webz = (WebView) view.findViewById(R.id.webV);
webz.setWebViewClient(new WebViewClient());
webz.loadUrl("" + et.getText());
}
});
return view;
}
}
当我点击按钮时,应用程序崩溃了。即使经过长时间的研究,我也不知道是什么问题。顺便说一句,我对 Android Studio 很陌生,感谢您的帮助。
【问题讨论】:
标签: java android android-fragments webview