完全更新:
我有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方法。
答案 0 :(得分:0)
由于textViews没有Id
s
尝试将此属性android:id="@+id/yourId"
添加到每个textView中
yourId将从button1
到button5
在所有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" />
<强>演示强>
答案 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
。希望,它可以帮助你。如果有帮助,请不要将此标记为答案。