2017-04-04 43 views
-1

我想使用tabhost制作选项卡式应用程序。所以问题是** onclick **添加到一个按钮,即通过标签内容使用createtab内容方法布局中的布局膨胀,不起作用。应用程序崩溃时单击该按钮。请看看我使用的代码。 这只方法i具有创建添加标签,该选项卡的内容动态如何从创建标签页内容添加按钮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); 
} 

logcat的错误 04-04 14:21:23.722 14715-14715/com.example.lenovo1.tabhostbrowser E/AndroidRuntime:致命例外:main 进程:com.example.lenovo1.tabhostbrowser,PID:14715 java.lang.IllegalStateException:指定的子项已具有父项。您必须先调用子对象的父对象的removeView()。 在android.view.ViewGroup.addViewInner(ViewGroup.java:4417) 在android.view.ViewGroup.addView(ViewGroup.java:4258) 在android.view.ViewGroup.addView(ViewGroup.java:4198) 在android.view.View.Group.addView(ViewGroup.java:4171) at com.example.lenovo1.tabhostbrowser.browser $ 1 $ 1.onClick(browser.java:114) at android.view.View.performClick(View.java: 5637) 在android.view.View $ PerformClick.run(View.java:22429) 在android.os.Handler.handleCallback(Handler.java:751) 在android.os.Handler.dispatchMessage(Handler.java: 95 ) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

+0

因此,该应用程序在LogCat中没有任何错误崩溃?请在您的问题中发布错误代码。 –

回答

0

您是否制作实例按钮点击使用方法loadUrl之前,您的WebView?像new WebView();

如果是的话 - 请确保你所传递的loadUrl不是null

目前我无法提供更多信息,因为您没有提供任何错误消息,当您的应用程序崩溃时发生。

+0

不,我还没有为webview创建实例 –

+0

想一想,如果这将工作?在使用任何wv方法之前。 –

+0

我已经在question.plz中添加了logcat错误检查 –