ListActivity und ActionBar anzeigen lassen?

  • Antworten:21
Fabian ASP
  • Forum-Beiträge: 46

09.02.2015, 19:31:09 via Website

Wie der Titel schon verrät hatte ich eine ActionBarActivity die ich zu einer ListActivity umfunktioniert habe. Da ich aber mit den items von der ActionBar gearbeitet habe, würde ich ungerne auf diese verzichten. Gibt es eine Möglichkeit die ActionBar anzeigen zu lassen bzw. zu nutzen, obwohl man die Klasse als "extends ListActivity" macht?

Antworten
Sven R.
  • Forum-Beiträge: 1.904

09.02.2015, 19:57:12 via App

http://lmgtfy.com/?q=Android+ListActivity+witb+Actionbar+

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

09.02.2015, 20:17:51 via App

Was machst du denn mit der ActionBar?
Normalerweise kannst du das Objekt per

gerActionBar() bekommen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Fabian ASP
  • Forum-Beiträge: 46

10.02.2015, 16:37:58 via Website

Sven, ich hätte persönliche Hilfe wertgeschätzt aber naja.
Mit getActionbar(); funktioniert das leider nicht.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

10.02.2015, 16:56:41 via Website

Bitte poste mal etwas von deinem Code, was du mit der ActionBar machst etc.

LG

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Fabian ASP
  • Forum-Beiträge: 46

10.02.2015, 19:50:10 via Website

Das ist halt in der menu.xml :
android:title="Logout"
app:showAsAction="ifRoom" />
android:title="Status"
app:showAsAction="always" />

und das mache ich damit:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();

    //noinspection SimplifiableIfStatement

    switch(id){
        case R.id.logout:
            ParseUser.logOut();
            Intent intentonLogin = new Intent(this, login.class);
            startActivity(intentonLogin);
            break;
        case R.id.status:
            Intent intentonStatus = new Intent(this, status.class);
            startActivity(intentonStatus);
    }

    return super.onOptionsItemSelected(item);
}

Der zeigt nicht die id's von den items an also die hab ich nicht vergessen :D
id's sind genauso wie der status von den beiden items :-)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

10.02.2015, 20:05:22 via Website

Das muss doch auch mit einer ListActivity gehen.
Warum geht das nicht?
Wenn du dein Menu in der MenuCreate infaltest und dann in deiner oben gezeigten Methode auswertest, müsste das doch gehen.
Ich verstehe dein Problem jetzt nicht bei dem Code.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Fabian ASP
  • Forum-Beiträge: 46

10.02.2015, 20:17:03 via Website

Wie gesagt ganz komisch.
image

Das ist extends actionbaractivity und..
image

das ist extends listactivity :O

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

10.02.2015, 20:41:08 via App

Achso jetzt versteh ichs.

Ne ListActivity hat keine ActionBar.
Warum reicht dir denn keine Bormale Activity?

— geändert am 10.02.2015, 20:41:37

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Sven R.
  • Forum-Beiträge: 1.904

11.02.2015, 15:55:17 via App

Okay, persönliche Hilfe ist das jetzt immer noch nicht, habe ich auch nur in Google gefunden 😉:

Dein Theme muss von ...ActionBar... extenden.

Theme.AppCompat.Light.DarkActionBar zum Beispiel für die Support Lib.

https://developer.android.com/training/basics/actionbar/styling.html#CustomText

— geändert am 11.02.2015, 15:57:53

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
Fabian ASP
  • Forum-Beiträge: 46

11.02.2015, 16:07:43 via Website

Und wie soll ich dann die ActionBar anzeigen lassen?
Mit getActionBar(); oder getActionBar().show(); funktioniert beides nicht :O

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

11.02.2015, 16:21:23 via Website

In einer ListActivity garnicht.
Deswegen wollte ich wissen wofür du explizit eine ListActivity bracuhst.

Eine Normale ACtivity tuts auch.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Fabian ASP
  • Forum-Beiträge: 46

11.02.2015, 16:27:21 via Website

Mit einem item in der actionbar kommt man auf eine Activity wo man sachen schreiben kann und diese sollen dann mit Hilfe der ListActivity auf dieser angezeigt werden. Also "home-Act." soll die List-Act. sein wo man die geschriebenen sachen sehen kann und "Status-Act." soll die Activity sein wo man die sachen schreiben kann

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

11.02.2015, 16:28:34 via Website

Nimm statt der ListAct eine Normale Activity mit einer ListView. Das sollte dann passen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Fabian ASP
  • Forum-Beiträge: 46

11.02.2015, 16:40:24 via Website

Hab ich und wie soll dann die ActionBar angezeigt werden?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

11.02.2015, 16:45:37 via Website

In einer normalen Activity wird diese normalerweise angezeigt.
Ausser du verwendest irgendwelche Supp Libs oder besondere Themes/Manifesteinstellungen.
Gehe halt wieder afu deinen ActionBar Activity zurück, dann müsste es wie vorher gehen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Sven R.
  • Forum-Beiträge: 1.904

11.02.2015, 18:02:19 via App

Mit dem theme/style muss es gehen.

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.957

11.02.2015, 23:38:38 via Website

Hallo,

es gibt eine Möglichkeit ganz unkompliziert.

ActionBarListActivity

import android.support.v7.app.ActionBarActivity;
import android.widget.HeaderViewListAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;

public class ActionBarListActivity extends ActionBarActivity {

    private ListView mListView;

    protected ListView getListView() {
        if (mListView == null) {
            mListView = (ListView) findViewById(android.R.id.list);
        }
        return mListView;
    }

    protected void setListAdapter(ListAdapter adapter) {
        getListView().setAdapter(adapter);
    }

    protected ListAdapter getListAdapter() {
        ListAdapter adapter = getListView().getAdapter();
        if (adapter instanceof HeaderViewListAdapter) {
            return ((HeaderViewListAdapter)adapter).getWrappedAdapter();
        } else {
            return adapter;
        }
    }
}

TestActivity

import android.os.Bundle;
import android.widget.ArrayAdapter;

public class TestActivity extends ActionBarListActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(android.R.layout.list_content);
        String[] songsArray = new String[10];
        songsArray = new String[10];
        for(int i=0; i < songsArray.length; i++){
            songsArray[i] = "Song " + i;
        }
        ArrayAdapter<String> itemsAdapter =
                new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songsArray);
        setListAdapter(itemsAdapter);
    }
}

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten
Fabian ASP
  • Forum-Beiträge: 46

13.02.2015, 19:22:02 via Website

Also bei mir funktioniert das nicht. Aber trotzdem danke.
Zurück zum Problem, wenn ich halt die Activity "ActionBar" extenden lasse werden mir folgende Funktionen angestrichen:
getListView() und
setListAdapter.
Gibt es irgendwelche Lösungsansätze zum Lösen der Probleme? :-)

Antworten
Sven R.
  • Forum-Beiträge: 1.904

13.02.2015, 20:03:04 via App

So auf den ersten Blick sehe ich keinen Fehler. Was für ein Fehler wird denn angezeigt?

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
Fabian ASP
  • Forum-Beiträge: 46

13.02.2015, 20:32:48 via Website

image

Habe den Code 1:1 übernommen

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.957

13.02.2015, 21:34:37 via App

Wenn du die Zeile anklickst kommt ein rotes Fragezeichen oder Ausrufezeichen dort seht welches problem vorliegt.

Edit: dir fehlt der packed pfad in der ersten Zeile, erstell die Klasse selber und kopiere dann den code rein.

— geändert am 13.02.2015, 21:36:08

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Antworten