2016-09-28 9 views
0

В первом запуске, после открытия приложения он должен ждать в течение 1 секунды и открыть панель навигации, после 1 второй навигации ящика должен закрытькак использовать функцию wait в android?

SharedPreferences preferences= PreferenceManager.getDefaultSharedPreferences(this); 
    if (!preferences.getBoolean("Man",false)) 
    { 

    // wait 1 second    

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.openDrawer(Gravity.LEFT); 

    // wait 1 second 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.openDrawer(Gravity.RIGHT); 

     SharedPreferences.Editor editor=preferences.edit(); 
     editor.putBoolean("Man",true); 
     editor.commit(); 
    } 
+0

использование Handler с postDelayed. –

ответ

0

Вы можете использовать Handler для достижения времени ожидания в коде

Handler handler = new Handler(); 
      handler.postDelayed(new Runnable() { 
       public void run() { 
        // Actions to do after 1 second 
       } 
      }, 1000); 
0

Вы можете использовать Handler с рекурсией

boolean firstOpen = false; 
public void animateDrawer(){ 
    new Handler().postDelayed(new Runnable() { 
         @Override 
         public void run() { 
         if(!firstOpen) 
          { 
          // open your Drawer here 
          firstOpen = true; 
          animateDrawer(); 
          } 
          else 
          { 
          // close your Drawer here 
          } 
         } 
        },1000); 
//1000 is a 1 second delay 
} 
+0

Как я могу закрыть его, через 1 сек. –

+0

Он работает над булевым состоянием в течение первых 1 секунды, он будет называть себя, и через 2 секунды он не будет называть себя так после закрытия ящика, он закончит сам. – Nitesh

0

Вы можете либо использовать CountDown Timer,

new CountDownTimer(30000, 1000) { 

    public void onTick(long millisUntilFinished) { 
     mTextField.setText("seconds remaining: " + millisUntilFinished/1000); 
     //here you can have your logic to set text to edittext 
    } 

    public void onFinish() { 
     mTextField.setText("done!"); 
    } 

}.start(); 

Или сообщение отложенной,

final Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
     //Do something after 100ms 
     Toast.makeText(c, "check", Toast.LENGTH_SHORT).show(); 
     handler.postDelayed(this, 2000); 
     } 
    }, 1500);