[ERLEDIGT] Navigation Drawer stürzt ab nach dem schchließen durch thread

SM-T110 UND GT-I9300

SM-T110 UND GT-I9300

Fortgeschrittenes Mitglied
17
Hallo, ich habe ein Problem. undzwar habe ich einen Navigation Drawer der sich erst nach 2 sekunden nach auswahl des items schliesen soll. Klappt auch gut nur sobal der Drawer zu ist, stürzt die app ab


Hier der Onitemsselected code:

Code:
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {

	@Override
	public boolean onNavigationItemSelected(MenuItem menuItem) {

	if(menuItem.isChecked()) menuItem.setChecked(true);
	else menuItem.setChecked(false);
	

//Drawer schließen
	
	
			Thread DrawerCloser = new Thread(){
					public void run(){
							try{
									sleep(2000);}

							catch(InterruptedException e){
									e.printStackTrace();}

							finally{
									drawerLayout.closeDrawers();}}};
			DrawerCloser.start();
	






	switch (menuItem.getItemId()){




	case R.id.starred:
		toolbar.setTitle("Start");
	
		ContentFragment fragment = new ContentFragment();
		android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
		fragmentTransaction.replace(R.id.frame,fragment);
		fragmentTransaction.commit();
		

drawerLayout.closeDrawer(Gravity.START);
		return true;


was läuft da falsch?
 
Ist zwar keine konkrete Antwort auf deine Frage, aber ich würde statt eines eigenen Threads hier einen Handler mit einem Post delayed machen.
Timer(Task) = bad! Do it the Android way: Use a Handler :)

Code:
private Handler handler = new Handler();
handler.postDelayed(runnable, 100);

//And we also need the Runnable for the Handler

private Runnable runnable = new Runnable() {
   @Override
   public void run() {
      /* do what you need to do */
      foobar();
   }
};
 
  • Danke
Reaktionen: SM-T110 UND GT-I9300 und swa00
Du solltest dir den Logcat einfach mal anschauen bei Abstürzen bzw. hier posten...
 
  • Danke
Reaktionen: SM-T110 UND GT-I9300
Danke fur eure Anworten! Hat mir sehr geholfen!


Mein jetziger Code:

Code:
case R.id.Dev_Devinfos:
		toolbar.setTitle("Geräte Infos");
		
		DeviceInfoDrawer dev=new DeviceInfoDrawer();
		android.support.v4.app.FragmentTransaction devTransaction=getSupportFragmentManager().beginTransaction();
		devTransaction.replace(R.id.frame,dev);
		devTransaction.commit();
		
		Handler Handler_Gerät = new Handler();
		Runnable Runnable_Gerät = new Runnable() {
		@Override
		public void run(){
			
		drawerLayout.closeDrawer(Gravity.LEFT);}};

		Handler_Gerät.postDelayed(Runnable_Gerät, 340);
		
		return true;




Super![emoji1]
 

Ähnliche Themen

S
Antworten
8
Aufrufe
483
swa00
swa00
A
  • AnimaAngelo85
Antworten
1
Aufrufe
315
swa00
swa00
Zurück
Oben Unten