Java 安卓:点击按钮时显示html页面?

Java 安卓:点击按钮时显示html页面?,java,android,xml,navigation,Java,Android,Xml,Navigation,全面更新: 我有100个html文件。我知道如何为单个xml页面初始化。但是,如果我使用这种方法,那么我需要创建100个xml页面。所以,这是浪费时间 因此,我在web.java中创建了,在章节中创建了100个按钮 我想问的是,如果按下button1,那么chapter1.html应该在web.java中打开。如果按下按钮2,则应在web.java中打开chapter2.html。像所有100个文件一样,应该在web.java中打开 我的XML代码: <TextView andro

全面更新:

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

因此,我在
web.java中创建了
,在
章节中创建了100个按钮

我想问的是,如果按下
button1
,那么
chapter1.html
应该在
web.java
中打开。如果按下
按钮2
,则应在
web.java
中打开
chapter2.html
。像所有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次点击法

这永远不会起作用,因为您的文本视图没有
Id
s

尝试将此适当的
android:id=“@+id/yourId”
添加到每个文本视图中 yourId将从
button1
button5

在所有文本视图中仅使用一个
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;
    }
 }
更新

以下代码对我来说很好:

活动\u 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);
        }

    }


}
}
public类MainActivity扩展活动实现OnClickListener{
按钮[]myButton=新按钮[100];
网络视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

对于(int i=0;i,XML文件中没有WebView。添加它。并在Oncreate only中引用它。现在使用所有方法创建单个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);  
      }
      }
试试这个 加载程序页面类:

    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>
webds类:添加此

mWebview = new WebView(this);
mWebview.loadUrl("http://www.google.com");
setContentView(mWebview);

JAVA代码中有一个错误。请用我的代码替换它

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
。希望它对您有所帮助。如果它对您有帮助,请务必将此标记为答案。

@HossamOukli
Webview无法解析或不是字段
您的xml文件中是否有Webview?您确定为布局输入了正确的名称吗?哈哈在您的Xml布局上添加100个按钮不是一个好主意,您可以使用javai以编程方式创建它们。我不知道如何以编程方式创建100个按钮。您能帮我解决这个问题吗?直到,它给了我一个错误。我不知道在我的Xml中添加webview的位置吗?如果我点击了“章节”按钮,请帮助我解决问题。您所说的中断是什么意思?我在emulator中运行应用程序,而cli点击“章节”按钮,它会断开,并说不幸的是,应用程序没有响应。现在添加。但是,如果我使用了你的代码,html页面在我单击时已直接打开。等一下,让我再次更新我的问题。我的意思是,如果按下
button1
,则
chapter1.html
应在
web.java
中打开。如果按下
button2
ed,
chapter2.html
应该在
web.java
中打开。就像所有100个文件都应该在
web.java
中打开一样?我理解你的方式。但是你能用我的代码键入这个吗?(因为我可能会出错)你需要犯错误才能从中吸取教训,一旦应用程序崩溃,请尝试检查你的日志猫,这将有助于找到错误的来源,如果你没有成功,请将日志猫发布在此处,我们将尽力提供帮助。当然。让我现在试一试;
    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);

            }
        }
        );
}
mWebview = new WebView(this);
mWebview.loadUrl("http://www.google.com");
setContentView(mWebview);
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;
            }
         }
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);

    }