Autore Topic: Personalizzare ActionBar  (Letto 350 volte)

Offline Klizard

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
Personalizzare ActionBar
« il: 27 Novembre 2015, 20:49:24 CET »
0
Ciao a tutti,
apro questo thread perché non riesco a personalizzare la top bar. Il progetto è per la versione Froyo quindi so già che teoricamente non potrei utilizzare l'actionbar in quanto è stata introdotta nelle versioni successive, ma ovviamente potrei mettere un bel IF nel quale verifico se la versione soddisfa le opzioni sulla action bar e in tal caso personalizzarla come mi pare.
Il problema è che l'app mi crasha immediatamente e non riesco a capirne il motivo.

Questo il codice dell'activity:
Codice (Java): [Seleziona]
public class Visualizza extends AppCompatActivity implements AdapterView.OnItemClickListener, AbsListView.OnScrollListener{

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_visualizza);
        setTitle("Visualizza");

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
             ActionBar actionBar = getActionBar();
             actionBar.setHomeButtonEnabled(true);
        }

[...]

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                this.finish();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }



Questo il logCat:
Codice: [Seleziona]
11-27 20:47:29.999 2805-2805/com.example.user.myapp W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41fa6730)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime: FATAL EXCEPTION: main
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user.myapp/com.example.user.myapp.Visualizza}: java.lang.NullPointerException
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.app.ActivityThread.access$700(ActivityThread.java:159)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:99)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:176)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5419)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:525)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:  Caused by: java.lang.NullPointerException
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at com.example.user.myapp.Visualizza.onCreate(Visualizza.java:99)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.app.Activity.performCreate(Activity.java:5372)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349) 
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.app.ActivityThread.access$700(ActivityThread.java:159) 
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316) 
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:99) 
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:176) 
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5419) 
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method) 
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:525) 
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) 
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) 
11-27 20:47:30.009 2805-2805/com.example.user.myapp E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method) 

Se non ho capito male l'actionbar restituisce un valore nullo e per questo crasha..Cosa sbaglio?

Grazie in anticipo a chiunque voglia aiutarmi :)

Offline iClaude

  • Utente normale
  • ***
  • Post: 202
  • Respect: +13
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5
  • Sistema operativo:
    Windows 10
Re:Personalizzare ActionBar
« Risposta #1 il: 30 Novembre 2015, 11:14:19 CET »
0
Io se fossi in te lascerei perdere Froyo, che gira sullo 0,2% dei dispositivi, e metterei la 11 come versione minima,  così puoi usare la Toolbar con la support library.

Offline Klizard

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
Re:Personalizzare ActionBar
« Risposta #2 il: 01 Dicembre 2015, 17:11:20 CET »
0
Io se fossi in te lascerei perdere Froyo, che gira sullo 0,2% dei dispositivi, e metterei la 11 come versione minima,  così puoi usare la Toolbar con la support library.
Ho messo la 11 ma non riesco lo stesso ad attivarla..come dovrei fare?:S non capisco cosa sbaglio :O

Offline iClaude

  • Utente normale
  • ***
  • Post: 202
  • Respect: +13
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5
  • Sistema operativo:
    Windows 10
Re:Personalizzare ActionBar
« Risposta #3 il: 01 Dicembre 2015, 18:24:36 CET »
0
Ho messo la 11 ma non riesco lo stesso ad attivarla..come dovrei fare?:S non capisco cosa sbaglio :O

Hai seguito questa guida?
Adding the App Bar | Android Developers