为什么我得到“R drawable无法绘制”?

时间:2011-03-28 06:59:23

标签: android graphics tabs

我的代码基于this tutorial

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 drawable ic_tabs_songs / albums / artists。 setContentView(R.layout.main);也无法绘制。我确定我在正确的文件夹res/drawable/ldpi folder中获得了图形。我做错了什么?

2 个答案:

答案 0 :(得分:0)

您是否尝试过清洁项目?

项目 - >清洁

答案 1 :(得分: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是我其他标签活动的名称。