java - 通过单击另一个 Activity 上的每个按钮来更改单个 WebView Activity 的 URL?

标签 java android android-webview

I'm beginner in android development, i need help. I have two activities, MainActivity contain 3 Buttons(Google, Facebook, Twitter), WebViewActivity contain webview, how to change URL in WebViewActivity on each button click?

For example if i click on Google Button it will move to WebViewActivity and the url "goole.com" should be open in same WebViewActivity

if i click on Facebook Button it will move to same WebViewActivity and the url "facebook.com" should be open in same WebViewActivity

if i click on Twitter Button it will move to same WebViewActivity and the url "twitter.com" should be open in same WebViewActivity.

请根据我的代码告诉我,我的代码是:

MainActivity.java:

public class MainActivity extends AppCompatActivity {

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

public void LoadThisUrl(View view) {
    if(view==findViewById(R.id.Google)){
        Intent i = new Intent(this, WebViewActivity.class);
        startActivity(i);
    }
    if(view==findViewById(R.id.Facebook)){
        Intent i = new Intent(this, WebViewActivity.class);
        startActivity(i);
    }
    if(view==findViewById(R.id.Twitter)){
        Intent i = new Intent(this, WebViewActivity.class);
        startActivity(i);
    }
}}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.myapplication.MainActivity">
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Google"
        android:id="@+id/Google"
        android:onClick="LoadThisUrl"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Facebook"
        android:id="@+id/Facebook"
        android:onClick="LoadThisUrl"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Twitter"
        android:id="@+id/Twitter"
        android:onClick="LoadThisUrl"/>
</LinearLayout>

WebViewActivity.java

public class WebViewActivity extends AppCompatActivity {
    WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);
        webView = (WebView) findViewById(R.id.webView);
        webView.setWebViewClient(new WebViewClient());
        webView.loadUrl("http:\\www.atifsoftwares.blogspot.com");
    }
}

activity_webview.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.myapplication.WebViewActivity">
    <WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/webView">
    </WebView>
</LinearLayout>

最佳答案

我自己解决了这个问题,为每个按钮添加了 Bundle。

Now in MainActivity.java

public void LoadThisUrl(View view) {
        if(view==findViewById(R.id.Google)){
            Intent i = new Intent(this, WebViewActivity.class);
            i.putExtra("Url", "http://google.com");
            startActivity(i);
        }
        if(view==findViewById(R.id.Facebook)){
            Intent i = new Intent(this, WebViewActivity.class);
            i.putExtra("Url", "http://facebook.com");
            startActivity(i);
        }
        if(view==findViewById(R.id.Twitter)){
            Intent i = new Intent(this, WebViewActivity.class);
            i.putExtra("Url", "http://twitter.com");
            startActivity(i);
        }
    }

WebViewActivity.java

webView = (WebView) findViewById(R.id.webView);
        webView.setWebViewClient(new WebViewClient());
        //webView.loadUrl("http:\\www.atifsoftwares.blogspot.com");
        Bundle b = getIntent().getExtras();
        String url = b.getCharSequence("Url").toString();
        webView.loadUrl(url);

关于java - 通过单击另一个 Activity 上的每个按钮来更改单个 WebView Activity 的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44224537/

相关文章:

java - 如何在 XML 文件中构建多维数组?

java - 如何生成斐波那契数列?

Java swing绘图: how to clear background when animating object

android - 在 JNI 方法上返回一个字符串数组

javascript - "javascript:function()"是一个 URL 吗?

android - 在Android v4.0 WebView中显示®注册商标符号?

java - 解释在 Kotlin 方法上使用 @JvmOverloads 生成的 Java 代码

android - 完全使用 native 代码(无 JNI)从后台线程更新 UI?

android - 如何通过android中的 Intent 将字典从一个 Activity 传递到另一个 Activity

javascript - 与 json 一起调用 Javascript 函数