2011-10-18 5 views
1

좋아, 그래서 3 개의 다른 탭에서 3 개의 다른 webviews를 여는 작은 응용 프로그램을 만들려고합니다. 순간에 나는 내 tabhost가 괜찮아요 내 webview에 대한 별도의 클래스를 만들었지 만, 내가 열리지 않을 때 응용 프로그램을 엽니 다.TabHost에서 WebView를 열려고 시도합니다.

Tabhost 코드

public class HelloTabWidgetActivity extends TabActivity { 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Resources res = getResources(); // Resource object to get Drawables 
    TabHost tabHost = getTabHost(); // The activity TabHost 
    TabHost.TabSpec spec; // Resusable TabSpec for each tab 
    Intent intent; // Reusable Intent for each tab 

    // Create an Intent to launch an Activity for the tab (to be reused) 
    intent = new Intent().setClass(this, HelloWebViewActivity.class); 

    // Initialize a TabSpec for each tab and add it to the TabHost 
    spec = tabHost.newTabSpec("albums").setIndicator("News", 
      res.getDrawable(R.drawable.ic_tab_albums)) 
     .setContent(intent); 
    tabHost.addTab(spec); 

    // Do the same for the other tabs 
    intent = new Intent().setClass(this, SongsActivity.class); 
    spec = tabHost.newTabSpec("songs").setIndicator("SaintsTV", 
         res.getDrawable(R.drawable.ic_tab_songs)) 
        .setContent(intent); 
    tabHost.addTab(spec); 

    intent = new Intent().setClass(this, ArtistsActivity.class); 
    spec = tabHost.newTabSpec("artists").setIndicator("Fixtures", 
         res.getDrawable(R.drawable.ic_tab_artists)) 
        .setContent(intent); 
    tabHost.addTab(spec); 

    tabHost.setCurrentTab(0); 
} 

}

내가 문제를 볼 수 없습니다 내가 TabHostContentFactory에 대한 다른 사람들의 글을 읽었습니다하지만 난 방법을 몰라

public class HelloWebViewActivity extends Activity { 
    WebView mWebView; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     mWebView = (WebView) findViewById(R.id.webview); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.loadUrl("http://www.google.com"); 
     mWebView.setWebViewClient(new HelloWebViewClient()); 
    } 
} 

웹보기 코드 응용 프로그램이 열릴 때 webview를로드하게하십시오. 어떤 도움이라도 크게 받게 될 것입니다.

public class HelloWebViewActivity extends Activity { 
    WebView mWebView; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


     mWebView = new WebView(this); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.loadUrl("http://www.google.com"); 
     mWebView.setWebViewClient(new HelloWebViewClient()); 

     setContentView(mWebView); 
    } 
} 

: 나는 유일한 수정 사랑의 코드의 벌금을 실행하기 때문에

위의 코드는 HelloWebView 튜토리얼 및

답변

0

내가 그것을 메인 레이아웃에서의 문제 자체를 가정합니다 HelloTabWidget 튜토리얼을 기반으로 이것은 당신을 시작하게하는 것입니다.

탭과 웹 뷰 컨트롤러 (및 다른 인 텐트 레이아웃)에 대한 탭 호스트 레이아웃 파일을 사용하는 것이 다른 레이아웃 파일에 있어야합니다. HTTP :? //joshclemm.com/blog/ P = 내가 언젠가 다시 같은 일을 시도하고 나중에 내가하지 않았다 것을 파악했다

+0

안녕하세요, 고마워요. 안드로이드 개발과 자바에서 조금 새로운 것입니다. 코드를 어디에 넣을 지 확신이 서지 않아서 조금 더 대답을 넓힐 수 있습니다. –

+0

답변에 자세한 내용이 도움이 되었기를 바랍니다. 그 튜토리얼은 매우 좋다, 당신은 멋진 탭 호스트를 가질 필요가있는 모든 것을 찾을 수있다.) – petrumo

+0

굉장한 환호 모든 작품 :) –

2

이 도움이 되었으면 좋겠 136

이를 위해 당신은 튜토리얼을 사용할 수 있습니다 app에 대한 appropraite 인터넷 액세스 권한을 선언하십시오. 그 이유는 탭 호스트의 webview가 비어 있었고 Logcat에도 오류가 없었기 때문입니다.

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

위의 행을 AndroidManifest.xml에 추가하면 내 문제가 해결되었습니다.

+0

예, ACCESS_NETWORK_STATE 않았다 그것은 나를 위해. –

관련 문제