Почему я получаю "R drawable не может быть нарисовано"? - PullRequest
0 голосов
/ 28 марта 2011

Я основываю свой код на этом уроке .

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 / альбомы / исполнители нельзя. setContentView(R.layout.main); также не может быть нарисовано. Я уверен, что я получил графику в нужную папку, res/drawable/ldpi folder. Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 30 марта 2011

к сожалению, в упомянутом вами учебнике есть некоторые ошибки. Я также следовал упомянутому вами уроку и решал проблемы. Короче: Создайте папку с именем drawable прямо в папке 'res'. 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>

Здесь Банки и Банкоматы - это названия других моих вкладок.

0 голосов
/ 28 марта 2011

Вы пробовали очистить проект?

Проект -> Очистить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...