Java 安卓:点击按钮时显示html页面?
全面更新: 我有100个html文件。我知道如何为单个xml页面初始化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个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
。希望它对您有所帮助。如果它对您有帮助,请务必将此标记为答案。@HossamOukliWebview无法解析或不是字段
您的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);
}