2017-04-04 1 views
-1

tabhostを使用してタブ付きアプリケーションを作成しようとしています。ボタン**に追加された** onclick **はタブコンテンツのレイアウトを使って膨らんだクリエタタブコンテンツメソッドを使用していません。ボタンをクリックするとアプリケーションがクラッシュします。 PLZは私が使用したコードを見てください。 この唯一の方法私は、タブとタブのコンテンツを追加するために作成する必要があり、動的にボタンのonclickを作成するタブコンテンツから追加する方法

public void addtab(View v) 
{ 
    tabno++; 
    tabname = String.valueOf(tabno); 
    tabnum++; 
    TabHost mTabHost = (TabHost) findViewById(R.id.tabHost); 
    mTabHost.setup(); 
    //Lets add the first Tab 
    TabHost.TabSpec Spec = mTabHost.newTabSpec("tab"); 
    // Spec.setContent(R.id.layoutone); 
    Spec.setContent(new TabHost.TabContentFactory() { 
     @Override 
     public View createTabContent(String tag) { 
      final LinearLayout layoutone = new LinearLayout(browser.this); 
      layoutone.setId(R.id.layoutone); 
      layoutone.setOrientation(LinearLayout.VERTICAL); 
      View adrressvar =getLayoutInflater().inflate(R.layout.xcc,layoutone,false); 
      search2=(Button) adrressvar.findViewById(R.id.search2); 
      urltwo=(EditText) adrressvar.findViewById(R.id.urlbar2); 

      search2.setOnClickListener(new View.OnClickListener() 
      { 
       @Override 
       public void onClick(View v) { 
        wb.loadUrl(keyword+urltwo.getText().toString()); 
       } 
      }); 

      LinearLayout.LayoutParams wbprm= new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 

      wb= new WebView(browser.this); 
      wb.setWebViewClient(new WebViewClient()); 

      wb.loadUrl(ty); 

      wb.setId(R.id.wbdy); 

      layoutone.addView(adrressvar); 
      layoutone.addView(wb,wbprm); 
      return layoutone; 
     } 
    }); 

    Spec.setIndicator("TAB" + tabname); 
    mTabHost.addTab(Spec); 
    mTabHost.setCurrentTab(tabnum); 
} 

04-04 14 logcatエラー:21:23.722 14715から14715/com.example.lenovo1.tabhostbrowser E/AndroidRuntime:重大な例外:メイン プロセス:com.example.lenovo1.tabhostbrowser、PID:14715 java.lang.IllegalStateException:指定された子にはすでに親があります。子の親で最初にremoveView()を呼び出す必要があります。 android.view.ViewGroup.addView(ViewGroup.java:4417)の とandroid.view.ViewGroup.addView(ViewGroup.java:4258)の とandroid.view.ViewGroup.addViewの の のandroid.view.ViewGroup.addView(ViewGroup.java:4171) com.example.lenovo1.tabhostbrowser.browser $ 1 $ 1.onClick(browser.java:114) android.view.View.performClick(View.java: (Handler.java:751) (android.os.Handler.dispatchMessage(Handler.java:22429)) (Handler.java:751) (Handler.java:22429) のアンドロイド。ビュー。ビュー$ PerformClick.run 95 )android.os.Looper.loop(Looper.java:154)の (android.app.ActivityThread.main(ActivityThread.java:6119) 、java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.internal.os.ZygoteInit.mainでcom.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) (ZygoteInit.java:776)

+0

LogCatでアプリがクラッシュしてもエラーは発生しませんか?あなたの質問にもエラーコードを投稿してください。 –

答えて

0

あなたはのインスタンスを作成しましたWebViewを使用する前にボタンをクリックするとloadUrl? Like new WebView();

はいの場合、loadUrlに渡すものがnullではないことを確認してください。

あなたのアプリケーションがクラッシュしたときに発生するエラーメッセージを表示していないため、この時点ではさらに詳しい情報を提供することはできません。

+0

いいえ、私はwebviewのインスタンスを作成していません –

+0

それがうまくいくかどうか試してみるのはどうですか? wvメソッドを使用する前に –

+0

question.plzでlogcatエラーを追加しました –

関連する問題