gpt4 book ai didi

java - 根据按钮链接在 webview 中显示特定的 url

转载 作者:行者123 更新时间:2023-12-02 12:07:57 24 4
gpt4 key购买 nike

我是 Android 应用程序开发新手。通过搜索许多链接并阅读 StackOverflow 上的讨论,我能够通过按钮链接创建 WebView。但是我无法成功在 WebView 中使用多 URL,尽管我已经尝试了很多。我的意思是如何根据特定按钮链接在一个网页 View 中显示不同的 URL。例如:如果单击按钮 1,它将在 Web View 中显示 google.com,按钮 2 将显示 facebook.com 等。我的编码如下。

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">

<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Loading from a Webpage"
android:layout_margin="10dp"
android:onClick="clickweb"/>

<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Loading from a Webpage"
android:layout_margin="10dp"
android:onClick="clickweb"/>

</LinearLayout>

MainActivity.java

公共(public)类 MainActivity 扩展 Activity {

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

}
public void clickweb(View v) {
Toast.makeText(MainActivity.this, "Web view selected", Toast.LENGTH_LONG).show();
Intent i1 = new Intent(MainActivity.this,LoadWeb.class);
startActivity(i1);
}
}

LoadWeb.java

@SuppressLint("SetJavaScriptEnabled")
public class LoadWeb extends Activity {

private WebView mWebView;

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

// Get reference of WebView from layout/webviewex.xml
mWebView = (WebView) findViewById(R.id.webView1);

setUpWebViewDefaults(mWebView);
// Load website
mWebView.loadUrl("https://www.google.co.in");
}

//Convenience method to set some generic defaults for a

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setUpWebViewDefaults(WebView webView) {
WebSettings settings = webView.getSettings();

// Enable Javascript
settings.setJavaScriptEnabled(true);

// Use WideViewport and Zoom out if there is no viewport defined
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);

// Enable pinch to zoom without the zoom buttons
settings.setBuiltInZoomControls(true);

if(Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
// Hide the zoom controls for HONEYCOMB+
settings.setDisplayZoomControls(false);
}

// Enable remote debugging via chrome://inspect
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
}
}

webviewex.xml

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

<WebView
android:id="@+id/webView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</RelativeLayout>

最佳答案

您的按钮需要不同的外壳。之后,您可以在启动 LoadWeb Activity 之前向 Intent 添加额外内容。在本例中,您将添加一个字符串来保存要加载的 URL。最后一步是从起始 Intent 中获取 LoadWeb Activity 中的此字符串,并将其设置为 loadUrl() 中的 URL;

MainActivity.java

public void clickweb(View v) {

Toast.makeText(MainActivity.this, "Web view selected", Toast.LENGTH_LONG).show();
Intent i1 = new Intent(MainActivity.this,LoadWeb.class);

switch(v.getId()) {
case R.id.button1:
i1.putExtra("URL", "https://www.google.co.in");
break;
case R.id.button2:
il.putExtra("URL", "https://www.facebook.com");
break;
}

startActivity(i1);
}

LoadWeb.java

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

// Get reference of WebView from layout/webviewex.xml
mWebView = (WebView) findViewById(R.id.webView1);

setUpWebViewDefaults(mWebView);

// Get URL from Intent
String URL = getIntent().getExtras().getString("URL");

// Load website
mWebView.loadUrl(URL);
}

查看 Intent 文档,了解您还可以通过 Intent 发送和检索哪些内容 https://developer.android.com/reference/android/content/Intent.html

关于java - 根据按钮链接在 webview 中显示特定的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46754402/

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