Materialdrawer: Ändern des Hörers des Zurück-Pfeils

Erstellt am 9. Nov. 2015  ·  23Kommentare  ·  Quelle: mikepenz/MaterialDrawer

Hi.

Hier ist mein Problem. Ich verwende die Schublade in einer Aktivitätsklasse und starte ein Fragment, wenn ich auf eine Schaltfläche des Aktivitätslayouts klicke.
Wenn ich das Fragment starte, ändere ich das Schubladensymbol in einen Zurück-Pfeil, aber wenn ich auf den Zurück-Pfeil klicke, öffnet sich das Schubladenmenü.

Es ist möglich, den Listener des Zurück-Pfeils zu ändern / zu überschreiben, um das Verhalten zu ändern und ein onBackPressed() zu setzen, anstatt die Schublade zu öffnen.

Sorry, falls das schon jemand gefragt hat..

Danke vielmals!

question

Hilfreichster Kommentar

Hallo, es scheint, dass, wenn Sie auf das Navigationssymbol / den Zurück-Pfeil klicken, keine traditionelle onOptionsItemSelected-Methode ausgelöst wird.
Das ist meine Lösung:

drawerBuilder.withOnDrawerNavigationListener(new Drawer.OnDrawerNavigationListener() {
    <strong i="7">@Override</strong>
    public boolean onNavigationClickListener(View clickedView) {
        Toast.makeText(Activity800.this, "HERE", Toast.LENGTH_SHORT).show();
        return true;
    }
}).build();

Sie können den Quellcode von DrawerBuilder.handleDrawerNavigation() sehen.

Alle 23 Kommentare

Hallo, es scheint, dass, wenn Sie auf das Navigationssymbol / den Zurück-Pfeil klicken, keine traditionelle onOptionsItemSelected-Methode ausgelöst wird.
Das ist meine Lösung:

drawerBuilder.withOnDrawerNavigationListener(new Drawer.OnDrawerNavigationListener() {
    <strong i="7">@Override</strong>
    public boolean onNavigationClickListener(View clickedView) {
        Toast.makeText(Activity800.this, "HERE", Toast.LENGTH_SHORT).show();
        return true;
    }
}).build();

Sie können den Quellcode von DrawerBuilder.handleDrawerNavigation() sehen.

Das Problem bei dieser Lösung besteht darin, dass Sie den Listener deklarieren müssen, wenn Sie den Drawer (in der Aktivität) instanziieren. Aber ich möchte das Verhalten ändern, wenn ich mich auf dem Fragment befinde und wenn ich das Schubladensymbol in den Zurück-Pfeil ändere.

Aber können wir wissen, welches Symbol im onNavigationClickListener eingestellt ist?

Vielen Dank!

Hier ist eine einfache Aktivität, Loch kann Ihnen helfen.

public class Activity802 extends ...{
    <strong i="6">@Override</strong>
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //build your drawer ...
        //...
        drawerBuilder.withOnDrawerNavigationListener(new Drawer.OnDrawerNavigationListener() {
            <strong i="7">@Override</strong>
            public boolean onNavigationClickListener(View clickedView) {
                //In our case this method is always called with getSupportFragmentManager().getBackStackEntryCount() > 0 because of our addOnBackStackChangedListener
                //if (getSupportFragmentManager().getBackStackEntryCount() > 0) {//can go back
                onBackPressed();
                //}
                return true;
            }
        }).build();
        //...

        getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
            <strong i="8">@Override</strong>
            public void onBackStackChanged() {
                if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
                    //change to back arrow
                    drawer.getActionBarDrawerToggle().setDrawerIndicatorEnabled(false);
                    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

                    //if you dont want the drawer to be opened in Fragment
                    drawer.getDrawerLayout().setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
                } else {
                    //change to hamburger icon

                    drawer.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true);
                    getSupportActionBar().setDisplayHomeAsUpEnabled(false);

                    //call this method to display hamburger icon
                    drawer.getActionBarDrawerToggle().syncState();

                    drawer.getDrawerLayout().setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
                }
            }
        });

    }

    @OnClick(R.id.btn)
    public void onBtn() {
        getSupportFragmentManager().beginTransaction().replace(R.id.fl, new F()).addToBackStack(null).commit();
    }

    public static class F extends Fragment {
        <strong i="9">@Nullable</strong>
        <strong i="10">@Override</strong>
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            return inflater.inflate(R.layout.activity_main, container, false);
        }
    }
}

Sie können den Quellcode von com.mikepenz.materialdrawer.DrawerBuilder.handleDrawerNavigation() anzeigen, um weitere Informationen zu erhalten.

Ich verstehe nicht wirklich, warum Sie diese Funktion implementieren müssen:

    @OnClick(R.id.btn)
    public void onBtn() {
        getSupportFragmentManager().beginTransaction().replace(R.id.fl, new F()).addToBackStack(null).commit();
    }

Andernfalls wird onBackStackChanged() nicht aufgerufen, wenn ich auf meinem Fragment bin und zurückkehre, und ich kehre nicht zu der Aktivität zurück, die das Fragment startet.

Hallo, onBtn() ist zum Starten eines Fragments. In meinem Aktivitätslayout gibt es eine Schaltfläche mit der ID R.id.btn, wenn Sie darauf klicken, wird diese Methode aufgerufen. (Unterscheidet sich dies davon, wie Sie ein Fragment starten?)
Der onBackStackChanged sollte aufgerufen werden, überprüfen Sie, ob Sie beim Starten eines Fragments "addToBackStack" aufgerufen haben, und Ihr Fragment (android.app.Fragment oder android.support.v4.Fragment) sollte zu seinem FragmentManager (getFragmentManager() oder getSupportFragmentManager()) passen )
Kannst du ein paar Codes geben? Vielleicht habe ich dein Problem nicht richtig verstanden.

Brunnen,

Meine Haupttätigkeit ist:

public class SettingsActivity extends AppCompatActivity implements Drawer.OnDrawerItemClickListener, UserListener{

    private Toolbar toolbar;
    private DrawerMenuUtils drawerMenuUtils;
    private Drawer drawer;

    private TextView account;
    private TextView notifications;

    private NotificationFragment notificationFragment;
    private AccountFragment accountFragment;

    <strong i="7">@Override</strong>
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings);

        toolbar = (Toolbar) findViewById(R.id.settings_toolbar);
        setSupportActionBar(toolbar);

        getSupportActionBar().setTitle(R.string.settings);

        buildDrawer(savedInstanceState);

        getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
            <strong i="8">@Override</strong>
            public void onBackStackChanged() {
                if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
                    //change to back arrow
                    drawer.getActionBarDrawerToggle().setDrawerIndicatorEnabled(false);
                    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

                    //if you dont want the drawer to be opened in Fragment
                    drawer.getDrawerLayout().setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
                } else {
                    //change to hamburger icon

                    drawer.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true);
                    getSupportActionBar().setDisplayHomeAsUpEnabled(false);

                    //call this method to display hamburger icon
                    drawer.getActionBarDrawerToggle().syncState();

                    drawer.getDrawerLayout().setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
                }
            }
        });

        account = (TextView) findViewById(R.id.settings_account);
        account.setOnClickListener(new View.OnClickListener() {
            <strong i="9">@Override</strong>
            public void onClick(View v) {
                accountFragment = new AccountFragment();
                FragmentTransaction transaction = getFragmentManager().beginTransaction();
                transaction.add(R.id.settings_frame_container, accountFragment);
                transaction.addToBackStack(null);
                transaction.commit();
            }
        });

        notifications = (TextView) findViewById(R.id.settings_notifications);
        notifications.setOnClickListener(new View.OnClickListener() {
            <strong i="10">@Override</strong>
            public void onClick(View v) {
                notificationFragment = new NotificationFragment();
                FragmentTransaction transaction = getFragmentManager().beginTransaction();
                transaction.add(R.id.settings_frame_container, notificationFragment);
                transaction.addToBackStack(null);
                transaction.commit();
            }
        });
    }

    private void buildDrawer(Bundle savedInstanceState){
        PrimaryDrawerItem profil = new PrimaryDrawerItem().withName("Profile");
        SecondaryDrawerItem planning = new SecondaryDrawerItem().withName("Agenda");
        SecondaryDrawerItem recommandations = new SecondaryDrawerItem().withName("Explore");
        SecondaryDrawerItem settings = new SecondaryDrawerItem().withName("Settings");

        SecondaryDrawerItem login;
        User user = Application.getUserHelper().getCurrentUser();


        if (user == null) {
            login = new SecondaryDrawerItem().withName("Log in");
            user = new User();
            user.setUsername("Anonyme");
            user.setEmail("[email protected]");
        } else {
            login = new SecondaryDrawerItem().withName("Log out");
        }

        AccountHeader accountHeader = new AccountHeaderBuilder()
                .withActivity(this)
                .withHeaderBackground(R.color.grayQ)
                .addProfiles(
                        new ProfileDrawerItem().withName(user.getUsername()).withEmail(user.getEmail())
                )
                .withSelectionListEnabledForSingleProfile(false)
                .build();


        drawer = new DrawerBuilder().withActivity(this).withToolbar(toolbar)
                .addDrawerItems(
                        profil,
                        planning,
                        recommandations,
                        new DividerDrawerItem(),
                        settings,
                        login
                ).withSavedInstance(savedInstanceState)
                .withAccountHeader(accountHeader)
                .withOnDrawerItemClickListener(this)
                .withOnDrawerNavigationListener(new Drawer.OnDrawerNavigationListener() {
                    <strong i="11">@Override</strong>
                    public boolean onNavigationClickListener(View view) {
                        onBackPressed();
                        return true;
                    }
                })
                .build();

        drawer.setSelection(-1);
    }

    <strong i="12">@Override</strong>
    public boolean onItemClick(View view, int i, IDrawerItem iDrawerItem) {
        switch (i) {
            case 1:

                if (!(drawer.getCurrentSelection() == 1)) {
                    Intent profileIntent = new Intent(Application.getContext(), ProfileActivity.class);
                    startActivity(profileIntent);
                }
                break;
            case 2:
                if (!(drawer.getCurrentSelection() == 2)) {
                    Intent agendaIntent = new Intent(Application.getContext(), MainActivity.class);
                    startActivity(agendaIntent);
                }
                break;
            case 3:
                if (!(drawer.getCurrentSelection() == 3)) {
                    Intent exploreIntent = new Intent(Application.getContext(), ExploreActivity.class);
                    startActivity(exploreIntent);
                }
                break;
            case 5:
                if (!(drawer.getCurrentSelection() == 5)) {
                    Intent settingsIntent = new Intent(Application.getContext(), SettingsActivity.class);
                    startActivity(settingsIntent);
                }
                break;
            case 6:
                if (Application.getUserHelper().getCurrentUser() == null) {
                    Intent loginIntent = new Intent(Application.getContext(), LoginActivity.class);
                    startActivity(loginIntent);
                } else {
                    Application.getUserHelper().logout(this);
                }
                break;
            default:
                return false;
        }
        return false;
    }

    //...

    <strong i="13">@Override</strong>
    public void onError(Throwable t) {
        Toast.makeText(Application.getContext(), "No connected account ?", Toast.LENGTH_LONG).show();
    }
}

Hier das AccountFragment:


public class AccountFragment extends Fragment {

    private View rootView;
    private TextView emailView;
    private TextView usernameView;
    private TextView changePassword;
    private TextView socialNetwork;
    private ImageView twitterView;
    private Button logInButton;

    private User user;

    <strong i="6">@Override</strong>

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.fragment_account, container, false);

        emailView = (TextView) rootView.findViewById(R.id.settings_email_response);
        usernameView = (TextView) rootView.findViewById(R.id.settings_username_response);
        changePassword = (TextView) rootView.findViewById(R.id.settings_change_password);
        socialNetwork = (TextView) rootView.findViewById(R.id.settings_socail_network);
        twitterView = (ImageView) rootView.findViewById(R.id.twitter_icon);
        logInButton = (Button) rootView.findViewById(R.id.login_button);

        logInButton.setOnClickListener(new View.OnClickListener() {
            <strong i="7">@Override</strong>
            public void onClick(View v) {
                Intent intent = new Intent(Application.getContext(), LoginActivity.class);
                startActivity(intent);
            }
        });

        ((SettingsActivity) getActivity()).getSupportActionBar().setTitle(R.string.my_account);
        return rootView;
    }

    <strong i="8">@Override</strong>
    public void onStart() {
        super.onStart();
        user = Application.getUserHelper().getCurrentUser();

        if (user == null) {
            user = new User();
            user.setUsername("Anonyme");
            user.setEmail("[email protected]");
            changePassword.setVisibility(View.GONE);
            socialNetwork.setVisibility(View.GONE);
            twitterView.setVisibility(View.GONE);
            logInButton.setVisibility(View.VISIBLE);
        }

        emailView.setText(user.getEmail());
        usernameView.setText(user.getUsername());
    }

    <strong i="9">@Override</strong>
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        switch (id) {
            case android.R.id.home:
                getActivity().onBackPressed();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
}

Ich verwende den android.support.v4.app.FragmentManager, aber das Symbol ändert sich nicht, wenn ich mich im Fragment befinde (und der Schubladen-Listener ist bereits derselbe).

Das Schubladensymbol wird jetzt durch die Methode OnBackStackChangedListener.onBackStackChanged festgelegt.
Stellen Sie sicher, dass diese Methode aufgerufen wird, wenn sich Ihr Backstack ändert.
Sie verwenden jedoch in den obigen Codes verschiedene FragmentManager. Sie sollten immer denselben FragmentManager verwenden.

Du hast recht ! Ich musste getSupportFragmentManager verwenden.

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

Es funktioniert, vielen Dank!

Hallo nochmal!
Habe ein weiteres Problem... Wenn ich nach dem Build versuche, drawer.setSelection(settings) anstelle von drawer.setSelection(-1) hinzuzufügen, friert meine App ein und stürzt ab.

drawer = new DrawerBuilder().withActivity(this).withToolbar(toolbar)
                .addDrawerItems(
                        profil,
                        planning,
                        recommandations,
                        new DividerDrawerItem(),
                        settings,
                        login
                ).withSavedInstance(savedInstanceState)
                .withAccountHeader(accountHeader)
                .withOnDrawerItemClickListener(this)
                .withOnDrawerNavigationListener(new Drawer.OnDrawerNavigationListener() {
                    <strong i="9">@Override</strong>
                    public boolean onNavigationClickListener(View view) {
                        onBackPressed();
                        return true;
                    }
                })
                .build();

        drawer.setSelection(settings);

Ich habe versucht, drawer.setSelection(5) aber es funktioniert nicht.
Wie kann ich das beheben?

Es tut mir leid, Sie wieder zu stören!

Welche Klasse haben deine Einstellungen? PrimaryDrawerItem ?
draw.setSelection() verwendet den Bezeichner des Elements. Verwenden Sie settings.withIdentifier (ein int, um dieses Element zu identifizieren).
Und gibt es Ausnahmeinformationen nach dem Absturz Ihrer App?

Nein, es ist ein SecondaryDrawerItem :

private void buildDrawer(Bundle savedInstanceState){
        PrimaryDrawerItem profil = new PrimaryDrawerItem().withName("Profile");
        SecondaryDrawerItem planning = new SecondaryDrawerItem().withName("Agenda");
        SecondaryDrawerItem recommandations = new SecondaryDrawerItem().withName("Explore");
        SecondaryDrawerItem settings = new SecondaryDrawerItem().withName("Settings");

        SecondaryDrawerItem login;
        User user = Application.getUserHelper().getCurrentUser();


        if (user == null) {
            login = new SecondaryDrawerItem().withName("Log in");
            user = new User();
            user.setUsername("Anonyme");
            user.setEmail("[email protected]");
        } else {
            login = new SecondaryDrawerItem().withName("Log out");
        }

        AccountHeader accountHeader = new AccountHeaderBuilder()
                .withActivity(this)
                .withHeaderBackground(R.color.grayQ)
                .addProfiles(
                        new ProfileDrawerItem().withName(user.getUsername()).withEmail(user.getEmail())
                )
                .withSelectionListEnabledForSingleProfile(false)
                .build();


        drawer = new DrawerBuilder().withActivity(this).withToolbar(toolbar)
                .addDrawerItems(
                        profil,
                        planning,
                        recommandations,
                        new DividerDrawerItem(),
                        settings,
                        login
                ).withSavedInstance(savedInstanceState)
                .withAccountHeader(accountHeader)
                .withOnDrawerItemClickListener(this)
                .withOnDrawerNavigationListener(new Drawer.OnDrawerNavigationListener() {
                    <strong i="6">@Override</strong>
                    public boolean onNavigationClickListener(View view) {
                        onBackPressed();
                        return true;
                    }
                })
                .build();

        drawer.setSelection(settings);
    }

Keine Informationen nach dem App-Absturz.
Ich werde versuchen, settings.withIdentifier(int) und ich werde Sie wissen lassen.
Danke noch einmal.

Wenn die App einfriert, bekomme ich:

11-11 17:12:23.907      515-515/pachageName I/Timeline? Timeline: Activity_launch_request id:pachageName time:135045853
11-11 17:12:24.107      515-515/packageName I/Timeline? Timeline: Activity_launch_request id:packageName time:135046056
11-11 17:12:24.357      515-515/packageName I/Timeline? Timeline: Activity_launch_request id:packageName time:135046304
11-11 17:12:24.527      515-515/packageName I/Timeline? Timeline: Activity_launch_request id:packageName time:135046478
11-11 17:12:24.717      515-515/packageName I/Timeline? Timeline: Activity_launch_request id:packageName time:135046666
11-11 17:12:24.868      515-515/packageName I/Timeline? Timeline: Activity_launch_request id:packageName time:135046815
11-11 17:12:25.098      515-515/packageName I/Timeline? Timeline: Activity_launch_request id:packageName time:135047044
...

Ich habe versucht, settings.withIdentifier(int) aber es funktioniert nicht.
Ich gehe so vor:

private void buildDrawer(Bundle savedInstanceState) {
        PrimaryDrawerItem profil = new PrimaryDrawerItem().withName("Profile").withIdentifier(0);
        SecondaryDrawerItem planning = new SecondaryDrawerItem().withName("Agenda").withIdentifier(1);
        SecondaryDrawerItem recommandations = new SecondaryDrawerItem().withName("Explore").withIdentifier(2);
        SecondaryDrawerItem settings = new SecondaryDrawerItem().withName("Settings").withIdentifier(3);


        SecondaryDrawerItem login;
        User user = QualityShowApplication.getUserHelper().getCurrentUser();


        if (user == null) {
            login = new SecondaryDrawerItem().withName("Log in").withIdentifier(4);
            user = new User();
            user.setUsername("Anonyme");
            user.setEmail("[email protected]");
        } else {
            login = new SecondaryDrawerItem().withName("Log out").withIdentifier(4);
        }

        AccountHeader accountHeader = new AccountHeaderBuilder()
                .withActivity(this)
                .withHeaderBackground(R.color.grayQ)
                .addProfiles(
                        new ProfileDrawerItem().withName(user.getUsername()).withEmail(user.getEmail())
                )
                .withSelectionListEnabledForSingleProfile(false)
                .build();


        drawer = new DrawerBuilder().withActivity(this).withToolbar(toolbar)
                .addDrawerItems(
                        profil,
                        planning,
                        recommandations,
                        new DividerDrawerItem(),
                        settings,
                        login
                ).withSavedInstance(savedInstanceState)
                .withAccountHeader(accountHeader)
                .withOnDrawerItemClickListener(this)
                .withOnDrawerNavigationListener(new Drawer.OnDrawerNavigationListener() {
                    <strong i="11">@Override</strong>
                    public boolean onNavigationClickListener(View view) {
                        onBackPressed();
                        return true;
                    }
                })
                .build();

        drawer.setSelection(settings); // drawer.setSelection(3) also tried
//...

@Fanalys verwendest du die neueste Version?

Nun, ich benutze die 4.4.4.
Aber ich habe gerade bemerkt, dass die 4.4.6 verfügbar ist. Die neue Version enthält Fix für setSelection(...) ?

@Fanalys was passiert in deinem withOnDrawerItemClickListener ?

Die Methode setSelection() löst diese Methode aus

Ich starte meine verschiedenen Aktivitäten im withOnDrawerItemClickListener :

  <strong i="6">@Override</strong>
    public boolean onItemClick(View view, int i, IDrawerItem iDrawerItem) {
        switch (i) {
            case 1:
                if (!(drawer.getCurrentSelection() == 1)) {
                    Intent profileIntent = new Intent(Application.getContext(), ProfileActivity.class);
                    startActivity(profileIntent);
                }
                break;
            case 2:
                if (!(drawer.getCurrentSelection() == 2)) {
                    Intent agendaIntent = new Intent(Application.getContext(), MainActivity.class);
                    startActivity(agendaIntent);
                }
                break;
            case 3:
                if (!(drawer.getCurrentSelection() == 3)) {
                    Intent exploreIntent = new Intent(Application.getContext(), ExploreActivity.class);
                    startActivity(exploreIntent);
                }
                break;
            case 5:
                if (!(drawer.getCurrentSelection() == 5)) {
                    Intent settingsIntent = new Intent(Application.getContext(), SettingsActivity.class);
                    startActivity(settingsIntent);
                }
                break;
            case 6:
                if (Application.getUserHelper().getCurrentUser() == null) {
                    Intent loginIntent = new Intent(Application.getContext(), LoginActivity.class);
                    startActivity(loginIntent);
                } else {
                    Application.getUserHelper().logout(this);
                }
                break;
            default:
                return false;
        }
        return false;
    }

warum schaust du dort nach der aktuellen auswahl? Das drawItem wird mit der von Ihnen festgelegten Kennung geliefert.

Je nachdem, welches DrawerItem ausgewählt wurde, starten Sie dann die Aktivität. Sie müssen nicht überprüfen, ob sie bereits ausgewählt wurden.

Könnten Sie bitte eine Protokollnachricht bereitstellen, die den Absturz zeigt? Du produzierst irgendwo eine Endlosschleife. wahrscheinlich den Listener deaktivieren, um zu versuchen, wenn es dort passiert?

Ich überprüfe die aktuelle Auswahl, weil ich nicht möchte, dass eine neue Aktivität gestartet wird, wenn der Benutzer bereits in dieser Aktivität ist.

Ich habe nicht wirklich eine Crash-App, aber sie friert ein und ich kann sie nicht verwenden. In meiner Konsole habe ich:

11-11 17:12:23.907      515-515/pachageName I/Timeline? Timeline: Activity_launch_request id:pachageName time:135045853
11-11 17:12:24.107      515-515/packageName I/Timeline? Timeline: Activity_launch_request id:packageName time:135046056
11-11 17:12:24.357      515-515/packageName I/Timeline? Timeline: Activity_launch_request id:packageName time:135046304
11-11 17:12:24.527      515-515/packageName I/Timeline? Timeline: Activity_launch_request id:packageName time:135046478
11-11 17:12:24.717      515-515/packageName I/Timeline? Timeline: Activity_launch_request id:packageName time:135046666
11-11 17:12:24.868      515-515/packageName I/Timeline? Timeline: Activity_launch_request id:packageName time:135046815
11-11 17:12:25.098      515-515/packageName I/Timeline? Timeline: Activity_launch_request id:packageName time:135047044
...

Aber es gibt keine brauchbaren Informationen. Ich habe versucht, mehr Informationen zu bekommen, ich werde versuchen, dem Zuhörer auszuweichen und zu sehen, was passiert.

Es funktioniert, wenn ich setSelection(settings, false) !

Sie erzeugen also irgendwo eine Endlosschleife, wenn Sie das Klickereignis bei Element auslösen

Ja, weil ich meine Aktivität starte, die die Schublade baut. Dann setze ich die Auswahl auf diese Aktivität. Die withOnDrawerItemClickListener instanziieren eine neue Aktivität, die die Schublade etc. etc. wieder aufbaut !

Danke für die Hilfe :+1:

Kein Problem

Danke @xzchaoo für die Hilfe

Stimmt, danke @xzchaoo (und dir auch @mikepenz ;)) !

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

jehad-suliman picture jehad-suliman  ·  3Kommentare

sonh picture sonh  ·  3Kommentare

pranjal-joshi picture pranjal-joshi  ·  3Kommentare

fuentepa picture fuentepa  ·  3Kommentare

oleynikd picture oleynikd  ·  4Kommentare