gpt4 book ai didi

android - WebView 不显示内容

转载 作者:行者123 更新时间:2023-11-30 03:08:52 26 4
gpt4 key购买 nike

全部。

我在 Android 的 WebView 上显示从 EditText 字段获取的 url 内容时遇到了一些问题。

我只是想添加一个插入到 EditText 字段中的字符串,以在另一个 Activity 中打开一个 url,其中一个 webView 使用 Google 搜索 url 打开,在 EditText 中搜索给定的文本。

这是我的主要 Activity :

package com.hbt.activities;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.webkit.WebView;
import android.widget.EditText;

public class MainActivity extends Activity {

EditText term;
String query;
WebView intview;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

term = (EditText) findViewById(R.id.searchtext);
query = term.getText().toString();

intview = (WebView) findViewById(R.id.webView1);
intview.getSettings().setBuiltInZoomControls(true);
intview.getSettings().setJavaScriptEnabled(true);
intview.getSettings().setDomStorageEnabled(true);
}

public void openWikipedia(View intview){

Intent intent = new Intent(this, Wikipedia.class);
intent.putExtra("query", query);
startActivity(intent);
}

public void openGoogle(View view){

Intent intent = new Intent(this, Google.class);
intent.putExtra("query", query);
startActivity(intent);
}
}

这是我的 Google.java:

package com.hbt.activities;

import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.widget.Toast;

public class Google extends Activity {
String query;
WebView intview;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_google);
}

public void opengoogle (View webView1){
intview = (WebView) findViewById(R.id.webView1);
intview.getSettings().setBuiltInZoomControls(true);
intview.getSettings().setJavaScriptEnabled(true);
intview.getSettings().setDomStorageEnabled(true);
intview.loadUrl("https://www.google.pt");

String query = "";

Bundle bundle = getIntent().getExtras();
if (bundle == null){
Toast.makeText(getApplicationContext(), "Insert a search item.",Toast.LENGTH_LONG).show();
}
if (bundle != null) {
query = bundle.getString("query");
}


}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK){
onBackPressed();
return true;
}
else{
return super.onKeyDown(keyCode, event);
}
}
}

最后是 Wikipedia.java:

package com.hbt.activities;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.widget.Toast;

public class Wikipedia extends Activity {

String query;
WebView intview;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wikipedia);
}

public void openWikipedia (View view){
intview = (WebView) findViewById(R.id.webView1);
intview.getSettings().setBuiltInZoomControls(true);
intview.getSettings().setJavaScriptEnabled(true);
intview.getSettings().setDomStorageEnabled(true);

String query = "";
Bundle bundle = getIntent().getExtras();
if (bundle == null){
Toast.makeText(getApplicationContext(), "Insert a search item.",Toast.LENGTH_LONG).show();
}
if (bundle != null) {
query = bundle.getString("query");
}

String url = "en.wikipedia.org/wiki/Special:Search?search="+ query;
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);

}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK){
onBackPressed();
return true;
}
else{
return super.onKeyDown(keyCode, event);
}
}
}

我真的无法理解为什么 WebView 不显示内容。任何帮助将不胜感激。提前致谢。

按照要求,布局 XML 如下:

<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >



<Button
android:id="@+id/Wikipedia"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/Google"
android:layout_alignLeft="@+id/Google"
android:layout_alignRight="@+id/Google"
android:minEms="6"
android:onClick="openWikipedia"
android:text="@string/wikipedia" />

<Button
android:id="@+id/Google"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:onClick="openGoogle"
android:text="@string/google" />

<EditText
android:id="@+id/searchtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/Wikipedia"
android:layout_alignLeft="@+id/Wikipedia"
android:layout_alignRight="@+id/Google"
android:layout_marginBottom="18dp"
android:layout_marginTop="12dp"
android:hint="@string/text_to_search_" />

<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/searchtext"
android:layout_alignLeft="@+id/searchtext"
android:layout_alignParentTop="true" />

</RelativeLayout>

接下来是维基百科布局 XML:

<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<WebView
android:id="@+id/webView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
/>

</RelativeLayout>

和 Google XML:

<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true" />

</RelativeLayout>

它们是不同的,因为我试图从几个方面来处理这个问题。

最佳答案

好的。您唯一需要的是 MainActivityma​​in_activity.xml

其他的东西,据我所知,你真的不需要。

这是 MainActivity 的代码 list :

public class MainActivity extends Activity {

EditText term;
String query;
WebView intview;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

term = (EditText) findViewById(R.id.searchtext);
query = term.getText().toString();

intview = (WebView) findViewById(R.id.webView1);
intview.getSettings().setBuiltInZoomControls(true);
intview.getSettings().setJavaScriptEnabled(true);
intview.getSettings().setDomStorageEnabled(true);
}

public void openWikipedia(View intview) {
String url = "http://en.wikipedia.org/wiki/" + query;
this.intview.loadUrl(url);
}

public void openGoogle(View view) {
String url = "https://www.google.pt?q="+query;
this.intview.loadUrl(url);
}
}

现在,主要 Activity 的布局。与您拥有的原始版本相比无需更改。但是,为了清楚起见,我将其发布。

<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=".MainActivity" >



<Button
android:id="@+id/Wikipedia"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/Google"
android:layout_alignLeft="@+id/Google"
android:layout_alignRight="@+id/Google"
android:minEms="6"
android:onClick="openWikipedia"
android:text="Wikipedia" />

<Button
android:id="@+id/Google"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:onClick="openGoogle"
android:text="Google" />

<EditText
android:id="@+id/searchtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/Wikipedia"
android:layout_alignLeft="@+id/Wikipedia"
android:layout_alignRight="@+id/Google"
android:layout_marginBottom="18dp"
android:layout_marginTop="12dp"
android:hint="Text to search" />

<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/searchtext"
android:layout_alignLeft="@+id/searchtext"
android:layout_alignParentTop="true" />

</RelativeLayout>

现在,一旦您按下 Google 或 Wikipedia 按钮,您的 webview 应该开始加载并显示其上的内容。给它一些时间。

对于维基百科:我注意到,它有重定向,所以最后,它会在默认浏览器中打开新的 URL。您将需要处理这个问题。

对于 Google: URL 可能设置不正确,但您可以查看它。

不过,WebView 未正确加载的主要问题现在应该已解决。

--------------------更新------------------------ -----

现在,改变这些东西:

MainActivity.class

public class MainActivity extends Activity {

EditText term;
String query;
WebView intview;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

term = (EditText) findViewById(R.id.searchtext);
query = term.getText().toString();

intview = (WebView) findViewById(R.id.webView1);
intview.getSettings().setBuiltInZoomControls(true);
intview.getSettings().setJavaScriptEnabled(true);
intview.getSettings().setDomStorageEnabled(true);
}

public void openWikipedia(View intview) {
String url = "http://en.wikipedia.org/wiki/" + query;
this.intview.loadUrl(url);
}

public void openGoogle(View view) {
Intent intent = new Intent(this, Google.class);
intent.putExtra("query", term.getText().toString());
startActivity(intent);
}
}

Google.class

public class Google extends Activity {
String query;
WebView intview;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_google);
opengoogle();
}

public void opengoogle() {
intview = (WebView) findViewById(R.id.webView1);
intview.getSettings().setBuiltInZoomControls(true);
intview.getSettings().setJavaScriptEnabled(true);
intview.getSettings().setDomStorageEnabled(true);
intview.loadUrl("https://www.google.pt");

String query = "";

Bundle bundle = getIntent().getExtras();
if (bundle == null) {
Toast.makeText(getApplicationContext(), "Insert a search item.",
Toast.LENGTH_LONG).show();
}
if (bundle != null) {
query = bundle.getString("query");
intview.loadUrl("http://www.google.com?q=" + query);
}

}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
return true;
} else {
return super.onKeyDown(keyCode, event);
}
}
}

关于android - WebView 不显示内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21323110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com