2011-03-28 64 views
0

我基於this tutorial的代碼。爲什麼我會得到「R drawable can not draw」?

package com.Tabs.org; 

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

public class HelloTabWidget extends TabActivity { 

    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); 

     // Do the same for the other tabs 
     intent = new Intent().setClass(this, AlbumsActivity.class); 
     spec = tabHost.newTabSpec("albums").setIndicator("Albums", 
          res.getDrawable(R.drawable.ic_tab_albums)) 
         .setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, SongsActivity.class); 
     spec = tabHost.newTabSpec("songs").setIndicator("Songs", 
          res.getDrawable(R.drawable.ic_tab_songs)) 
         .setContent(intent); 
     tabHost.addTab(spec); 

     tabHost.setCurrentTab(2); 
    } 
} 

錯誤在於R繪製的ic_tabs_songs/albums/artists不能被繪製。 setContentView(R.layout.main);也無法繪製。我確定我在正確的文件夾中獲得了圖形,res/drawable/ldpi folder。我究竟做錯了什麼?

回答

0

您是否嘗試過清潔項目?

項目 - >清潔

0

不幸的是,你提到的教程有一些錯誤。我也跟着你提到的教程,解決問題。 簡而言之: 在'res'文件夾下創建一個名爲drawable的文件夾。 enter image description here

和我的代碼工作正常

 // Create an Intent to launch an Activity for the tab (to be reused) 
    intent = new Intent().setClass(this, Banks.class); 
    // Initialize a TabSpec for each tab and add it to the TabHost 
    spec = tabHost.newTabSpec("banks").setIndicator("Banks", 
         res.getDrawable(R.drawable.ic_tab_artists)) 
        .setContent(intent); 
    tabHost.addTab(spec); 

又一個音符,你會發現,在本教程中,他們並沒有在其中您必須自己添加清單文件中添加其他兩項活動。

 <activity android:name="com.dbz.dbzatmactivities.Banks" 
     android:label="Banks"></activity> 
    <activity android:name="com.dbz.dbzatmactivities.Atms" 
     android:label="ATMs"></activity> 

這裏,Banks和Atms是我的其他選項卡活動的名稱。

相關問題