2014-09-01 5 views
1

я настроил мой WebView как этотWebview.loadurl из другого класса

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

}

здесь является экстракт mainktivity layout:

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

У меня есть сообщение о том, что веб-просмотр сообщения не может быть разрешен, мне нужно также объявить веб-просмотр в их действии? как бы я это сделал?

+2

Прежде всего, я не думаю, что это хороший способ использовать ваше имя класса как «Webview». – Aniruddha

+0

Где вы определили webview в xml? –

ответ

1

Вы пытаетесь получить доступ к веб-просмотру, который отсутствует в MainActivity.java. Таким образом, вы получаете эту ошибку. Что вы должны сделать по нажатию кнопки есть:

  1. Pass URL в соответствии с щелкнул кнопкой в ​​намерении к Webview.java
  2. нагрузки URL в WebView соответственно в sencond деятельности.

Pass URL согласно щелкнули Баттона:

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

Надежда это ясно.

+0

спасибо, но у меня ошибка на коммутаторе: Синтаксическая ошибка на токене {SwitchLabels ожидаются после этого токена? – 2014-09-01 09:43:13

+0

@MuiMui да. Проверьте правильность. За коммутатором должен следовать случай. Переместить линию цели над оператором switch. –

+0

Я пробовал это, но теперь startActivity (намерение); возвращает: недостижимый код, извините, беспокоить, я новичок – 2014-09-01 09:49:31

0

Вы не можете вызвать loadUrl из MainActivity, как вы его не объявили. Вам нужно начать работу с веб-браузером здесь и в намерении передать URL-адрес для загрузки.

0

Вам нужно будет начать работу с веб-просмотром и передать ему URL-адрес.

Таким образом, чтобы начать свой WebView активность вы будете нуждаться в

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 активность в вашем файле манифеста.

Смежные вопросы