我已经设置了这样的网页视图
public class Webview extends Activity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final ProgressDialog pd = ProgressDialog.show(this, "", "Chargement en cours", true);
setContentView(R.layout.activity_webview);
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient()
{
public void onPageFinished(WebView view, String ur){
pd.dismiss();
}
});
String url = getIntent().getStringExtra("url");
}
我还有另一个类MainActivity
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void ButtonOnClick(View v) {
Intent intent = new Intent (MainActivity.this, Webview.class);
switch(v.getId()) {
case R.id.button1:
intent.putExtra("url", "http://www.google.fr");
break;
case R.id.button2:
intent.putExtra("url", "http://www.orange.fr");
break;
//and so on....
}
startActivity(intent);
}
}
这是主要活动布局的摘录:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
android:id="@+id/frontpage_view"
android:tag="front"
>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="150dp"
android:paddingRight="10dp"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="80dip"
android:layout_height="wrap_content"
android:layout_marginRight="15dp"
android:drawableTop="@drawable/actualites"
android:onClick="ButtonOnClick"
android:text="Actualités"
android:textColor="#fff"
android:textSize="12sp"
android:textStyle="bold"
android:typeface="normal"
android:background="@null"
/>
<Button
android:id="@+id/button2"
android:layout_width="80dip"
android:layout_height="wrap_content"
android:drawableTop="@drawable/agenda"
android:text="Agenda"
android:onClick="ButtonOnClick"
android:textColor="#fff"
android:textSize="12sp"
android:textStyle="bold"
android:typeface="normal"
android:layout_marginRight="15dp"
android:background="@null" />
我得到的消息webview无法解决,我是否需要在主要活动中声明webview? 我该怎么做?
答案 0 :(得分:1)
您正在尝试访问不在MainActivity.java中的webview。所以你得到这个错误。按钮点击应该怎么做:
按点击按钮传递网址:
switch(v.getId()) {
case R.id.button1:
Intent intent = new Intent (MainActivity.this, Webview.class);
intent.putExtra("url", "http://www.google.fr");
startActivity(intent);
break;
case R.id.button2:
Intent intent = new Intent (MainActivity.this, Webview.class);
intent.putExtra("url", "http://www.google.fr");
startActivity(intent);
break;
//and so on....
}
在你的Webview.java中:
setContentView(R.layout.activity_webview);
final ProgressDialog pd = ProgressDialog.show(this, "", "Chargement en cours", true);
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
String url = getIntent().getStringExtra("url");
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
}
});
webView.loadUrl(url);
希望这很清楚。
答案 1 :(得分:0)
您无法从MainActivity中调用loadUrl,因为您尚未在其中声明。 您需要从此处开始您的webview活动,并在意图中传递要加载的URL。
答案 2 :(得分:0)
您需要启动Webview活动并将URL传递给它。
因此,要启动WebView Activity,您需要
switch(v.getId()) {
case R.id.button1:
Intent i = new Intent(MainActivity.this, WebView.class);
i.putExtra("URL", "http://www.google.fr");
startActivity(i);
break;
case R.id.button2:
Intent i = new Intent(MainActivity.this, WebView.class);
i.putExtra("URL", "http://www.google.fr");
startActivity(i);
break;
//and so on....
}
}
并在您的WebView活动中
webView.loadUrl(getIntent().getExtras().getString("URL"));
不要忘记将WebView Activity放入清单文件中。
答案 3 :(得分:0)
代码非常好。
只需更改String url = getIntent().getStringExtra(url);
然后在下一行中添加webView.loarUrl(url);
。
它对我有用。