2013-04-24 61 views
1

实现布局我是新到Android。而推行的Android应用程序选项卡视图我得到一个类型的错误在哪里,我无法看到的视图/布局。错误而在Android的

我得到的错误是Could not create tab content because could not find view with id -1

activity_main.xml如下: -

<?xml version="1.0" encoding="utf-8"?> 

<TabHost android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@android:id/tabhost" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    > 
    <RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

    <!-- <HorizontalScrollView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:fillViewport="true" 
     android:scrollbars="none"> >> Close this layout used for scrolling tabs 
--> 
     <TabWidget 
     android:id="@android:id/tabs" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:background="#2184C6" /> 



    <FrameLayout 
     android:id="@android:id/tabcontent" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     /> 

    </FrameLayout> 
    </RelativeLayout> 
    </TabHost> 

这我得到的error log如下: -

java.lang.RuntimeException: Could not create tab content because could not find view with id -1 
    at android.widget.TabHost$ViewIdContentStrategy.<init>(TabHost.java:593) 
    at android.widget.TabHost$ViewIdContentStrategy.<init>(TabHost.java:584) 
    at android.widget.TabHost$TabSpec.setContent(TabHost.java:441) 
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.setupTabHost(RenderSessionImpl.java:1041) 
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.postInflateProcess(RenderSessionImpl.java:892) 
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.postInflateProcess(RenderSessionImpl.java:967) 
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:293) 
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:318) 
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:325) 
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:372) 
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1638) 
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1389) 
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart$ReloadListener.reloadLayoutSwt(GraphicalEditorPart.java:1866) 
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart$ReloadListener.access$0(GraphicalEditorPart.java:1804) 
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart$ReloadListener$1.run(GraphicalEditorPart.java:1798) 
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) 
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4144) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1029) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:923) 
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86) 
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:543) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1438) 

java code是如下: -

package com.example.library; 

import android.app.TabActivity; 
import android.content.Intent; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.widget.TabHost; 
import android.widget.Toast; 
import android.view.Display; 
import android.view.Menu; 
import android.content.pm.ActivityInfo; 
import android.content.res.Configuration; 
import android.view.WindowManager; 

public class MainActivity extends TabActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 



     TabHost tabHost = getTabHost(); 
     TabHost.TabSpec spec; 

     Intent intent; 

     intent = new Intent().setClass(this, FirstActivity.class); 
     spec = tabHost.newTabSpec("First").setIndicator("Books") 
         .setContent(intent); 
     tabHost.addTab(spec); 
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++) 
     { 
      tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#4E4E9C")); 
     } 
    } 
     // Check screen orientation or screen rotate event here 
     @Override 
     public void onConfigurationChanged(Configuration newConfig) { 
      super.onConfigurationChanged(newConfig); 

      // Checks the orientation of the screen 
      if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
       Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); 
      } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
       Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); 
      } 
     } 

     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      // Inflate the menu; this adds items to the action bar if it is present. 
      getMenuInflater().inflate(R.menu.activity_main, menu); 
      return true; 

    } 


} 

我无法前进,因为我无法查看布局。

我读Stackoverflow其他的问题,但它不是我的帮助。

谁能请帮助我。

+0

你可以张贴一些Java代码? – 2013-04-24 11:29:55

回答

2

分配一个ID为您TextView,它会工作。

<TextView 
     android:layout_width="wrap_content" 
     android:id="@+id/lblTest" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true"/> 
0

我觉得错误抛出是因为你的java类。

你的类名应该TabActivity延长,那么你将设置布局是这样的。

public class MainActivity extends TabActiviy{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activy_main); 

} 

} 
+0

我的类名扩展TabActivity.But感谢您的回答 – Catmandu 2013-04-24 11:42:03

1

代替所有这些,

android:id="@android:id/tabhost" 

尝试使用此

android:id="@+id/tabhost" 
+2

线程解释的差异:http://stackoverflow.com/questions/5025910/difference-between-id-and-id-in-android – electricSunny 2013-04-24 11:49:26