Autore Topic: Errore: You cannot combine custom titles with other title features  (Letto 1024 volte)

Offline enzoses

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac OS X
0
Ciao a tutti! Sto cercando di implementare una custom title bar seguendo questo tutorial:

Android custom title bar | Source Tricks

però quando mando in esecuzione l'app crasha riportando questo errore

Codice (Java): [Seleziona]
04-08 13:55:32.589: E/AndroidRuntime(1132): FATAL EXCEPTION: main
04-08 13:55:32.589: E/AndroidRuntime(1132): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.vscreazioni.farmachimica/it.vscreazioni.farmachimica.MainActivity}: android.util.AndroidRuntimeException: You cannot combine custom titles with other title features
04-08 13:55:32.589: E/AndroidRuntime(1132):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at android.os.Looper.loop(Looper.java:137)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at android.app.ActivityThread.main(ActivityThread.java:4745)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at java.lang.reflect.Method.invokeNative(Native Method)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at java.lang.reflect.Method.invoke(Method.java:511)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at dalvik.system.NativeStart.main(Native Method)
04-08 13:55:32.589: E/AndroidRuntime(1132): Caused by: android.util.AndroidRuntimeException: You cannot combine custom titles with other title features
04-08 13:55:32.589: E/AndroidRuntime(1132):     at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:227)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:2601)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:2844)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:252)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at android.app.Activity.setContentView(Activity.java:1867)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at it.vscreazioni.farmachimica.MainActivity.onCreate(MainActivity.java:18)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at android.app.Activity.performCreate(Activity.java:5008)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
04-08 13:55:32.589: E/AndroidRuntime(1132):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
04-08 13:55:32.589: E/AndroidRuntime(1132):     ... 11 more

Questo è il contenuto del file custom_title.xml

Codice (Java): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:orientation="vertical" >  
 
    <TextView  
        android:id="@+id/textView1"  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:layout_gravity="center"  
        android:background="#ff0000"  
        android:text="This is my custom title"  
        android:textAppearance="?android:attr/textAppearanceMedium" />  
 
</LinearLayout>  

Questo è il contenuto del file MainActivity

Codice (Java): [Seleziona]
@Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                //setContentView(R.layout.activity_main);
                requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);  
        setContentView(R.layout.activity_main);        
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
        }


Mi aiutate a capire dove sbaglio?

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:Errore: You cannot combine custom titles with other title features
« Risposta #1 il: 08 Aprile 2013, 14:24:01 CEST »
0
Non ne sono sicuro, ma la Title Bar è un oggetto diverso dalla Action Bar, che la sostituisce a partire dalla versione 4.0 di Android

Se è il tuo caso (e quindi stai testando con un dispositivo con quella versione, o superiore) puoi utilizzare questo codice:

Codice: [Seleziona]
LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.mioLayout, null);

actionBar.setCustomView(v);
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline enzoses

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac OS X
Re:Errore: You cannot combine custom titles with other title features
« Risposta #2 il: 08 Aprile 2013, 14:41:43 CEST »
0
Non credo sia il mio caso: non uso temi particolari o actionBar.  Come compatibilità ho da Android 2.2 alla versione più recente.  Siccome è da poco che programmo per Android non so se questi dettagli che sto dando sono utili...

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:Errore: You cannot combine custom titles with other title features
« Risposta #3 il: 08 Aprile 2013, 19:59:08 CEST »
0
Su che versione di android stai facendo girare l'app?
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline enzoses

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac OS X
Re:Errore: You cannot combine custom titles with other title features
« Risposta #4 il: 08 Aprile 2013, 20:02:38 CEST »
0
La sto testando su 4.1.2

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:Errore: You cannot combine custom titles with other title features
« Risposta #5 il: 08 Aprile 2013, 20:08:21 CEST »
0
Allora, stai sicuramente utilizzando l'Action Bar, a meno che tu non abbia usato qualche istruzione apposta per nasconderla (ma non credo che sia il caso).

Prova a utilizzare il pezzo di codice che ti ho postato prima.  :-)
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline enzoses

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac OS X
Re:Errore: You cannot combine custom titles with other title features
« Risposta #6 il: 09 Aprile 2013, 22:47:49 CEST »
0
Ciao! allora ti posto un po' di tentativi che ho fatto.

Usando il codice che mi hai dato

Codice (Java): [Seleziona]
LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View v = inflator.inflate(R.layout.custom_title, null);

                actionBar.setCustomView(v);

ho questo errore:

Codice (Java): [Seleziona]
actionBar cannot be resolved
quindi modifico il codice in questo modo:

Codice (Java): [Seleziona]
ActionBar actionBar = getActionBar();
                LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                View v = inflator.inflate(R.layout.custom_title, null);

                actionBar.setCustomView(v);

e ottengo questo errore:

Codice (Java): [Seleziona]
Class requires API level 11 (current min is 8): android.app.ActionBar
aumento nel manifest a 11 il livello (mi sai dire qual è la differenza?) e compila bene ma il risultato è che non si vede niente tranne la vecchia barra >.>... non ci capisco niente...

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Errore: You cannot combine custom titles with other title features
« Risposta #7 il: 09 Aprile 2013, 22:49:29 CEST »
0
usa actionbarsherlock, c'è un tutorial anche sul forum se non sbaglio
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:Errore: You cannot combine custom titles with other title features
« Risposta #8 il: 10 Aprile 2013, 09:22:45 CEST »
0
La Action Bar è una funzionalità introdotta in Android 3.0, quindi Api 11 (prima mi sono confuso, non è da Android 4.0)
Sui dispositivi che hanno almeno questa versione il codice gira senza problemi, se invece il dispositivo ha una versione minore, l'App ricerca l'Action Bar nel sistema ma non essendoci, si spacca.

Come ha consigliato Nicola_D ti conviene utilizzare la Sherlock Action Bar, che è una libreria custom che permette di utilizzare la Action Bar anche in dispositivi vecchi, a patto che la versione minima si Android 2.2 (considerando che già la 2.1 è solo sull'1/2 % di dispositivi la fascia esclusa non è una grave perdita :-) )
Un click sul pulsante "Thanks" è sempre gradito :-)