android:点击按钮时显示html页面?

时间:2013-08-03 12:06:52

标签: java android xml navigation

完全更新:

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

所以,我在<WebView>中创建了web.java,在chapters.java中创建了100个按钮

我要问的是,如果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 TextView

我的JAVA代码:

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

.... 100 OnClick方法。

4 个答案:

答案 0 :(得分:0)

由于textViews没有Id s

,因此无法使用

尝试将此属性android:id="@+id/yourId"添加到每个textView中 yourId将从button1button5

取值

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

然后像那样打电话给他们每个人

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" />

<强>演示

enter image description here

答案 1 :(得分:0)

您的XML文件中没有WebView。添加它。并仅在Oncreate中参考。现在你用所有方法单独使用WebView。

      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);  
      }
      }

答案 2 :(得分: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);

答案 3 :(得分: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。希望,它可以帮助你。如果有帮助,请不要将此标记为答案。