SORU
18 Mart 2012, Pazar


Ayar Android uygulaması için Tema ActionBarSherlock

CEVAP İÇİN AŞAĞIYA GÜNCELLEME 2 OKUYUN

Benim app ActionBarSherlock kullanmaya çalışıyorum. project github repo, Eclipse, library-4.0.0.jar dosya benim projenin lib içine kopyalanan inşa dizinden 4.0.0 sürümü (Eclipse kullanmıyorum) kontrol ettim.

Sadece iskelet bir aktivite şu an, ve ICS gayet iyi başlattı, ama ben Gingerbread üzerinde çalıştırdığınızda, aşağıdaki özel durum Tema uygulaması, tema görmedim şikayet alıyorum.Sherlock (veya benzer):

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.arashpayan.prayerbook/com.arashpayan.prayerbook.PrayerBook}: java.lang.IllegalStateException: You must use Theme.Sherlock, Theme.Sherlock.Light, Theme.Sherlock.Light.DarkActionBar, or a derivative.
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3683)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: You must use Theme.Sherlock, Theme.Sherlock.Light, Theme.Sherlock.Light.DarkActionBar, or a derivative.
    at com.actionbarsherlock.internal.ActionBarSherlockCompat.generateLayout(ActionBarSherlockCompat.java:987)
    at com.actionbarsherlock.internal.ActionBarSherlockCompat.installDecor(ActionBarSherlockCompat.java:899)
    at com.actionbarsherlock.internal.ActionBarSherlockCompat.setContentView(ActionBarSherlockCompat.java:852)
    at com.actionbarsherlock.ActionBarSherlock.setContentView(ActionBarSherlock.java:655)
    at com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:316)
    at com.arashpayan.prayerbook.PrayerBook.onCreate(PrayerBook.java:44)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
    ... 11 more

Hakkında şikayet hattı (: 44 PrayerBook) 6 ** için çağrı. Bu uygulama sadece üst setTheme() dediğim onCreate() bir yöntem ile tek bir aktiviteden oluşur:

public void onCreate(Bundle savedInstanceState)
{
        setTheme(com.actionbarsherlock.R.style.Theme_Sherlock);
        super.onCreate(savedInstanceState);

        TextView rootTextView = new TextView(this);
        rootTextView.setText("Hello, world!");
        setContentView(rootTextView);

        getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        ActionBar.Tab tab = getSupportActionBar().newTab();
        tab.setText("Prayers");
        getSupportActionBar().addTab(tab);

        tab = getSupportActionBar().newTab();
        tab.setText("Recents");
        getSupportActionBar().addTab(tab);

        tab = getSupportActionBar().newTab();
        tab.setText("Bookmarks");
        getSupportActionBar().addTab(tab);
}

Yanlış tema ayar olmalıyım, ama nasıl olacağını bilemiyorum. Herkes yardımcı olabilir?

GÜNCELLEME Aşağıda, CommonsWare tema androidmanifest.xml ayarlanabilir kaydetti. Çok denedim:

<application android:label="@string/app_name" android:icon="@drawable/icon" android:theme="@style/Theme.Sherlock">
        <activity android:name="PrayerBook"
                  android:label="@string/app_name"
                  android:configChanges="orientation|keyboardHidden|screenLayout|uiMode|mcc|mnc|locale|navigation|fontScale|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="LanguagesActivity" />
</application>

ama Karınca app oluşturmaya çalıştığında bana bir hata veriyor:

/Users/arash/coding/prayerbook/AndroidManifest.xml:7: error: Error: No resource found that matches the given name (at 'theme' with value '@style/Theme.Sherlock').

GÜNCELLEME 2 Onun içinde CommonsWare yardım açıklamaları takip ile çalışma almak başardı. Proje bir bağımlılık olarak ActionBarSherlock eklemek için gerekli. Bunu yapmak için

1) projemden library-4.0.0.jar android-support-4.0.jar lib dizin kaldırıldı.

2) Gelecek, ActionBarSherlock dizin github dan teslim kök içinde library klasöre gidin. Tipi android update project build.xml proguard.cfg dosya yani bir kütüphane oluşturulacaktır.

3) son olarak, cd projenin ana dizine geri android update project --path . --library ../ActionBarSherlock/libraryile kitaplık bir bağımlılık olarak ABS ekleyin Komut --library yol dışında repo işaretli olan yere göre değişir. ActionBarSherlock ve benim Uygulama Projesi dizin kardeş.

CEVAP
18 Mart 2012, Pazar


Genellikle, the Android developer documentation (the ActionBarSherlock theming page bağlı) görüldüğü gibi bildiriminde temanızı ayarlayın.

Eğer ActionBarSherlock her yerde uygulaması içinde kullanmak istiyorsanız, bu gibi çalışır:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.Sherlock">

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FrameCityJackal

    FrameCityJac

    4 Aralık 2010
  • Mindy

    Mindy

    20 NİSAN 2006
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009