【问题标题】:Switching a View/Activity after Few seconds几秒钟后切换视图/活动
【发布时间】:2013-09-23 06:27:17
【问题描述】:

我想在几秒钟后更改我的应用的视图/活动 我的意思是我已经为我的应用程序创建了一个主视图,我想在 3 秒后移动到下一个活动,我应该如何实现这一点。 谢谢你

【问题讨论】:

  • 你应该在提出问题之前付出足够的努力。
  • 我已经努力了,但方法不同,所以我问了阙只是为了确定
  • 如果有不同的方法,你怎么把那个答案标记为正确的?你怎么知道这是正确的?!考虑一下。

标签: android view android-activity


【解决方案1】:

试试这个,

Handler mHandler = new Handler() {
    public void handleMessage(android.os.Message msg) {
      Intent i = new Intent(FirstActivity.this,SeconActivity.class);
      startActivity(i);
    };
};
mHandler.sendEmptyMessageDelayed(0, 3000);

【讨论】:

  • mHandler在初始化之前怎么能用,即使你没有声明它
【解决方案2】:

您可以制作斜线活动。试试这个代码......跳你的问题会解决

public class SplashActivity extends Activity {

private final int SPLASH_DISPLAY_LENGHT = 2000;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.splash_screen);

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            /* Create an Intent that will start the Menu-Activity. */
            Intent mainIntent = new Intent(SplashActivity.this, NightClubMain.class);
            SplashActivity.this.startActivity(mainIntent);
            SplashActivity.this.finish();
        }
    }, SPLASH_DISPLAY_LENGHT);
}

【讨论】:

    【解决方案3】:
    view.postDelayed(Runnable r, int delay);
    

    【讨论】:

      【解决方案4】:

      您可以为此使用 Timer。

      Timer myTimer;
      
      startTimerTask();
      
      public void startTimerTask() {
              MyTimerTask myTask = new MyTimerTask();
              myTimer = new Timer();
              myTimer.schedule(myTask, 0, 3000);
      
          }
      @Override
          public void onPause() {
              super.onPause();
              try {
                  myTimer.cancel();
              } catch (Exception e) {
                  e.printStackTrace();
              }
      
          }
      
          @Override
          public void onStop() {
              super.onStop();
              try {
                  myTimer.cancel();
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      
      class MyTimerTask extends TimerTask {
      
              public void run() {
                  try {
                      getActivity().runOnUiThread(new Runnable() {
      
                          @Override
                          public void run() {
      //                      
      
                              Do YOUR STUFF HERE
                          }
      
                      });
                  } catch (Exception e) {
                      e.printStackTrace();
                  }
      
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-12
        • 1970-01-01
        • 1970-01-01
        • 2015-06-03
        • 2016-08-07
        相关资源
        最近更新 更多