2011-04-07 102 views
1

我正在使用Andriod選項卡布局應用程序來使用andriod編程。我知道關於這個教程有很多問題,但我似乎無法找到問題所在。以下是我的代碼。另外我如何獲得錯誤日誌? - 我注意到這是所有的帖子要求。我在andriod手機上運行它,而我的IDE是eclipse。它編譯得很好,但是當我運行它時,我得到一個黑色的屏幕與力關閉框。提前致謝!Android Tab選項佈局幫助

我主要的Java文件:

package greg.tab; 

import android.app.Activity; 
import android.app.TabActivity; 
import android.content.Intent; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.widget.TabHost; 
import android.widget.TextView; 

public class tab extends TabActivity { 
    /** Called when the activity is first created. */ 

    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, ArtistsActivity.class); 

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

     //Create an indent 
     intent = new Intent().setClass(this, SongActivity.class); 
     //Initialize 

     spec = tabHost.newTabSpec("albums").setIndicator("Albums", res.getDrawable(R.drawable.ic_tab_artists)) 
     .setContent(intent); 
     tabHost.addTab(spec); 


     //Create an indent 
     intent = new Intent().setClass(this, AlbumActivity.class); 
     //Initialize 

     spec = tabHost.newTabSpec("songs").setIndicator("Songs", res.getDrawable(R.drawable.ic_tab_artists)) 
     .setContent(intent); 
     tabHost.addTab(spec); 
     tabHost.setCurrentTab(2);  
    } 

    public class ArtistsActivity extends Activity { 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      TextView textview = new TextView(this); 
      textview.setText("This is The Artists tab"); 
      setContentView(textview); 
     } 
    } 

    public class AlbumActivity extends Activity { 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      TextView textview = new TextView(this); 
      textview.setText("This is The Album tab"); 
      setContentView(textview); 
     } 
    } 
    public class SongActivity extends Activity { 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      TextView textview = new TextView(this); 
      textview.setText("This is The song tab"); 
      setContentView(textview); 
     } 
    } 
} 

- 我的XML清單

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="greg.tab" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".tab" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

<activity android:name=".ArtistsActivity" 
android:label ="@string/app_name"> 
</activity> 
<activity android:name=".AlbumActivity" 
android:label ="@string/app_name"></activity> 
<activity android:name=".SongActivity" 
android:label ="@string/app_name"> 
</activity> 
    </application> 


</manifest> 

- 我的XML我的圖像選擇製作文件(我只用一個普通的XML文件 - 我希望這是正確的) - 兼論我用這個的所有選項卡

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- When selected, use grey --> 
    <item android:drawable="@drawable/ic_tab_artists_grey" 
      android:state_selected="true" /> 
      <!-- When not selected, use white--> 
      <item android:drawable="@drawable/ic_tab_artists_white" /> 
      </selector> 

- 我的主XML文件

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/tabhost" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="5dp"> 
     <TabWidget 
     android:id="@android:id/tabs" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 
     <FrameLayout 
     android:id="@android:id/tabcontent" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:padding="5dp" /> 
     </LinearLayout> 
     </TabHost> 

再次,任何幫助表示讚賞!

謝謝。

+0

粘貼logcat消息。 – Sandy 2011-04-07 04:43:07

+0

看起來您需要從Android編程基礎開始。只要通過Android的開發者指南,你會發現如何檢查logcat。 – Swapna 2011-04-07 05:16:03

+0

@Ayudh - 感謝您的建議 - 我會嘗試修復資源可繪製的 – Johnston 2011-04-10 19:30:10

回答

2

嘗試此鏈接how to use logcat

對於力閉合:檢查你的資源(佈局+繪項目),你在XML和ID是給ID使用的是在你的代碼。 乾淨你的項目並運行它 希望這可以幫到你!

+0

,我只是把它放在HDPI可繪製文件夾中是這樣嗎?也感謝您使用logcat的鏈接 - 它會使它更容易debub – Johnston 2011-04-10 19:28:51

+0

嘿試試這些教程優秀tutorials.hope這些幫助http://wonton-games.blogspot.com/2010/07/tutorial-multiple-screen -support.html和http://realmike.org/blog/2010/12/21/multiple-screen-sizes-with-processing-for-android/ – Alok 2011-04-11 05:55:42