Anfänger: ActionBar Problem

H

hundundhund

Neues Mitglied
0
ich bin am verzweifeln.

ich bin neu in Android und möchte einfache Tabs in die ActionBar, aber es funktioniert leider nicht.

In diesem Projekt funktioniert es Implementing Effective Navigation | Android Developers zwar, wenn ich aber den Teil mit den Tabs in mein Code includieren, so gibs nen Fehler, sobald ich auf den Button (welche die FrameActivity mit den Tabs öffnen soll) klicke.

Jemand ne Idee?
 

Anhänge

  • probl.jpg
    probl.jpg
    275,8 KB · Aufrufe: 236
  • pp.jpg
    pp.jpg
    119,8 KB · Aufrufe: 213
Hi,

ich habe nur eine kleine Idee:
Ich glaube dein Fragment hat nicht die Actionbar deiner Parentactivity.
Mach mal sowas wie getParentActivity().getActionBar() etc.
 
Kardroid schrieb:
Ich glaube dein Fragment hat nicht die Actionbar deiner Parentactivity.
Mach mal sowas wie getParentActivity().getActionBar() etc.

danke, aber "getParentActivity()" gibts leider nicht (gäbe nur "getParentActivityIntent()").

getParent() liefert zwar ne Activity zurück aber bei:

29:_____ final ActionBar actionBar = getParent().getActionBar();

kommt der Fehler:
Caused by: java.lang.NullPointerException
....ActionBarTabMain.onCreate(ActionBarTabMain.java:29)

:confused2:
 
..und die genaue Fehlerausgabe diesmal:
 

Anhänge

  • p.jpg
    p.jpg
    89,3 KB · Aufrufe: 204
Zuletzt bearbeitet:
weiß keiner woran das liegen könnte?
 
Hmm

also meine Activities mit Actionbar -> sind ActionBarActivity
(Das ist zwar auch nur ne FragmentActivity, aber halt mit Actionbar)

https://developer.android.com/reference/android/support/v7/app/ActionBarActivity.html


könnte der Grund sein, das er die ActionBar nicht findet
-> daher NULLPOINTER


PS: Hierbei musst du natürlich aufpassen, da sich seit Materialdesign (Android 5) hier einiges verändert hat, und die Google Docs das noch nicht 100% so dabei haben.
In zukunft geht man weg von der Actionbar und nutzt Toolbar - was im Grunde etwas ähnliches nur flexibler ist.
 
immer noch Nullpointer.. egal.

danke für den Tipp mit der Toolbar.


Welche Version der Tab-Navigation würdet ihr empfehlen? (..sollte irgendwie auch 4.0.3 kompatibel sein)
 
ActionBar actionBar = getSupportActionBar();

@hundundhund

Du benutzt die support libraries, also muss du ach die dazugehörigen Klassen und Methoden verwenden.
(Insbesondere gebraucht man entweder nur die Klassen Support-Libraries oder lässt es ganz sein. Dein Mischmatsch produziert nur NullPointerException.)
 
markus.tullius schrieb:

danke, aber an dieser stelle kennt er es irgendwie auch nicht:

Code:
import android.os.Bundle;
import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class ActionBarTabMain extends FragmentActivity implements ActionBar.TabListener {


    AppSectionsPagerAdapter mAppSectionsPagerAdapter;
    ViewPager mViewPager;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.actionbartabmain);

        mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager());

        final ActionBar actionBar = [COLOR="Red"]getSupportActionBar()[/COLOR];
...Cannot resolve method 'getSupportActionBar()'
 
Zuletzt bearbeitet:
Code:
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class ActionBarTabMain extends FragmentActivity implements ActionBar.TabListener {


    AppSectionsPagerAdapter mAppSectionsPagerAdapter;
    ViewPager mViewPager;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.actionbartabmain);

        mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager());

        final ActionBar actionBar = [COLOR="Red"]getSupportActionBar()[/COLOR];
..leider immer noch ...Cannot resolve method 'getSupportActionBar()'

gäbs ne Möglichkeit die toolbar auch in Android 4.0.3 zu verwenden?

@markus.tullius: habs gelesen, verstehs aber nicht so richtig
 
Zuletzt bearbeitet:
Ganz kurz.

Du hast ein NullPointerException. Dh. deine Actionbar wird nicht gefunden, so das getSupportActioBar null zurück liefert.

Wenn du eine Supportlibrary benutzt, muss du die Actionbar in der style.xml definieren. Dabei muss du das Thema AppCompat benutzen!

https://developer.android.com/guide/topics/ui/actionbar.html

Oder du setzt dein Api-Level auf 14, und benutzt nur die Klassen für den Api-Level. Sollte man aber nicht machen, da es echt mühsam ist, alle Infos aus der Doku zu gewinnen.
 
Code:
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class ActionBarTabMain extends ActionBarActivity implements ActionBar.TabListener {


    AppSectionsPagerAdapter mAppSectionsPagerAdapter;
    ViewPager mViewPager;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.actionbartabmain);

        mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager());

      final ActionBar actionBar = getSupportActionBar();

        actionBar.setHomeButtonEnabled(false);

        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
....

..so funktionierts.
endlich! :smile:

mit Android >2.1 funktioniert es!
mit Android 1.5 und 1.6 funktioniert es leider nicht.
v7 Support Libraries ... designed for Android 2.1 (API level 7) and higher.
 
Zuletzt bearbeitet:
Hallo TS,

ich würde dir nicht empfehlen auf Android 1.5 und 1.6 zu setzen.
Wir machen auch nur noch Apps ab 4 und wenn es sein muss, auf 2.3.3. Alles da drunter ist meiner Meinung nach nicht mehr praktikabel.
1.5 und 1.6 gab es fast nur noch auf dem G1 und das war das aller erste Android Handy.
 

Ähnliche Themen

D
Antworten
17
Aufrufe
404
datNeMo
D
5
Antworten
0
Aufrufe
745
539901
5
W
  • WuDiDong
Antworten
3
Aufrufe
767
jogimuc
J
Zurück
Oben Unten