2013-04-24 4 views
1

Android가 처음입니다. Android 애플리케이션에서 Tab보기를 구현하는 동안보기/레이아웃을 볼 수없는 오류가 발생합니다.android에서 레이아웃을 구현하는 중에 오류가 발생했습니다.

내가 점점 오전 오류는 다음과 같이 activity_main.xml입니다 내 Could not create tab content because could not find view with id -1

: - 다음

<?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 코드를 게시 할 수 있습니까? –

답변

2

TextView에 대한 ID를 할당하여

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

시도, 그것은 작동합니다.

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

자바 클래스 때문에 오류가 발생한다고 생각합니다.

클래스 이름은 TabActivity에서 확장되어야하며 이와 같이 레이아웃을 설정해야합니다. 대신 모든 이들

public class MainActivity extends TabActiviy{ 

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

} 

} 
+0

내 클래스 이름이 TabActivity를 확장합니다. 그러나 대답은 – Catmandu

1

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

입니다. 차이점을 설명하는 스레드 : http://stackoverflow.com/questions/5025910/difference-between-id-and-id-in-android – electricSunny

관련 문제