1

完全更新:

我有 100 个 html 文件。我知道如何初始化<WebView />单个 xml 页面。但是,如果我使用这种方法,那么我需要创建 100 个 xml 页面。所以,这是浪费时间。

所以,我创建<WebView>web.java100 个按钮chapters.java

我要问的是,如果button1按下,chapter1.html应该在web.java. 如果button2按下,chapter2.html应该在web.java. 就像所有 100 个文件都应该在web.java?

我的 XML 代码:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:text="Button1"
    android:onClick="Button1"/>

.... 100 文本视图

我的 JAVA 代码:

public void Button1(View v) {
WebView wv;  
wv = (WebView) findViewById(R.id.webview);  
wv.loadUrl("file:///android_asset/chapter1.html"); 
}

.... 100 OnClick 方法。

4

4 回答 4

0

试试这个加载器页面类:

    Package ...; //name of your package.
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;

    public class web extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            WebView mainWebView = (WebView) findViewById(R.id.mainWebView);

            WebSettings webSettings = mainWebView.getSettings();
            webSettings.setJavaScriptEnabled(true); //enables java script

            mainWebView.setWebViewClient(new MyCustomWebViewClient());
            mainWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

            mainWebView.loadUrl(" Your url "); // type your url here.
        }

        private class MyCustomWebViewClient extends WebViewClient {

           @Override

            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        }
    }

xml文件:

<WebView android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:id="@+id/mainWebView">
 </WebView>

清单文件:

<uses-permission
         android:name="android.permission.INTERNET"
         ></uses-permission>

新代码:在设置按钮所在布局的 Activity 中添加此代码

    Button button15 =(Button)findViewById(R.id.button5);
           button15.setOnClickListener(new View.OnClickListener() {


        public void onClick(View view) {

            Intent p = new Intent (Activity.this,
                               Webds.class);

            }
        }
        );
}

webds 类:添加这个

mWebview = new WebView(this);
mWebview.loadUrl("http://www.google.com");
setContentView(mWebview);
于 2013-08-03T12:41:05.757 回答
0

Id这永远不会起作用,因为您的textViews 没有

尝试将此属性添加android:id="@+id/yourId"到您的每个 textViews yourId 将取值从button1 tobutton5

onclick在所有 textView 中只使用一种方法:

然后像这样称呼他们每个人

void onclick(View v)
{
    switch(v.getId())
    {
    case R.id.button1:
    //Code will be executed when you click on Button1
    break;

    case R.id.button2:
    //Code will be executed when you click on Button2
    break;

    case R.id.button3:
    //Code will be executed when you click on Button3
    break;
    .
    .
    .
    .
    default:
    break;
    }
 }

更新

以下代码对我来说很好:

activity_main.xml

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

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="234dp" >

    <LinearLayout
        android:layout_width="321dp"
        android:id="@+id/myLinearLayout"
        android:layout_height="154dp"
        android:orientation="vertical" >
    </LinearLayout>
</ScrollView>

<WebView
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="224dp" />

</LinearLayout>

MainActivity.java

public class MainActivity extends Activity implements OnClickListener {
Button [] myButton = new Button[100];
WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    for(int i=0;i<100;i++)
    {
        myButton[i] = new Button(this);
        myButton[i].setOnClickListener(this);
        myButton[i].setText("Button"+i);
        LinearLayout ll = (LinearLayout)findViewById(R.id.myLinearLayout);
        LayoutParams lp = new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        ll.addView(myButton[i], i);

    }

}
@Override
public void onClick(View v) 
{
    for(int i=0;i<myButton.length;i++)
    {
        if(myButton[i]==v)
        {
        String s=Integer.toString(i);
        wv=(WebView)findViewById(R.id.webView);
        wv.loadUrl("file:///android_asset/chapter1.html"+s);
        }

    }


}
}

确保将以下行添加到您的 AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />

演示

在此处输入图像描述

于 2013-08-03T12:20:20.867 回答
0

您的 XML File 中没有 WebView 。添加它。并仅在 Oncreate 中参考。现在,您使用所有方法将 WebView wv 单一化。

      Public Class MainActivity extends Activity{
      WebView wv;

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

      wv = (WebView) findViewById(R.id.webview);  
      }
      }
于 2013-08-03T12:23:23.487 回答
0

JAVA CODE 有错误。只需将其替换为我的代码即可。

public void webClick(View v) 
        {
            switch(v.getId())
            {
            case R.id.button1:
                Intent intent = new Intent(this, Webview.class);
                intent.putExtra("weblink","file:///android_asset/chapter/chapter1.html");
                startActivity(intent);
                break;

.
.
.
.
            default:
            break;
            }
         }

并使用以下代码创建 Webview.java;

public class Webview extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_webview);; 
        String webLink = getIntent().getStringExtra("weblink");
        WebView wv;  
        wv = (WebView) findViewById(R.id.webview);  
        wv.loadUrl(webLink);

    }

因此,对于每次调用,您各自的 html 文件都将在同一个浏览器中打开。Webview.java. 希望,它可以帮助你。如果它对您有帮助,请不要将其标记为答案。

于 2013-08-05T09:41:22.110 回答