這個總體來說是比較簡單的,計時跳轉一般調用Android Studio中的Handler方法。
一、發生點擊事件跳轉頁面
1 mBtnTextView = (Button) findViewById(R.id.btn_textview);//將類型強制轉換為Button 2 mBtnTextView.setOnClickListener(new View.OnClickListener() {//給Button設置一個點擊事件 3 @Override 4 public void onClick(View view) { 5 //跳轉到TextView演示界面 6 Intent intent = new Intent(Main3Activity.this, TextViewActivity.class); 7 startActivity(intent); 8 } 9 });
二、最基本的計時跳轉頁面
1 new Handler().postDelayed(new Runnable() { 2 public void run() { 3 4 //你要跳轉或執行的操作 5 setResult(RESULT_CODE); 6 7 } 8 }, 2000);
三、計時跳轉頁面,並且在發生點擊事件時直接跳轉。
1 package com.example.lenovo.tallybook; 2 3 import android.content.Intent; 4 import android.os.Handler; 5 import android.support.v7.app.AppCompatActivity; 6 import android.os.Bundle; 7 import android.view.View; 8 import android.view.WindowManager; 9 import android.widget.Button; 10 import android.widget.TextView; 11 import android.widget.Toast; 12 13 import java.util.Timer; 14 import java.util.TimerTask; 15 16 public class MainActivity extends AppCompatActivity implements View.OnClickListener { 17 private int recLen = 5;//跳過倒計時提示5秒 18 private Button mBtn; 19 Timer timer = new Timer(); 20 private Handler handler; 21 private Runnable runnable; 22 23 @Override 24 protected void onCreate(Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.activity_main); 27 //flag使我們必須要設置的變量 28 int flag = WindowManager.LayoutParams.FLAG_FULLSCREEN; 29 //設置當前窗體為全屏顯示 30 getWindow().setFlags(flag, flag); 31 initView(); 32 timer.schedule(task, 1000, 1000);//等待時間一秒,停頓時間一秒 33 /** 34 * 正常情況下不點擊跳過 35 */ 36 handler = new Handler(); 37 handler.postDelayed(runnable = new Runnable() { 38 @Override 39 public void run() { 40 //跳轉到首界面 41 Intent intent = new Intent(MainActivity.this, HomeActivity.class); 42 startActivity(intent); 43 finish(); 44 } 45 }, 5000);//延遲5S后發送handler信息 46 47 } 48 49 private void initView() { 50 mBtn = findViewById(R.id.btn_1);//跳過 51 mBtn.setOnClickListener(this);//跳過監聽 52 } 53 54 TimerTask task = new TimerTask() { 55 @Override 56 public void run() { 57 runOnUiThread(new Runnable() { // UI thread 58 @Override 59 public void run() { 60 recLen--; 61 mBtn.setText("跳過 " + recLen);//在控件上顯示距離跳轉的剩余時間 62 if (recLen < 0) { 63 timer.cancel(); 64 mBtn.setVisibility(View.GONE);//倒計時到0隱藏字體 65 } 66 } 67 }); 68 } 69 }; 70 71 @Override 72 public void onClick(View v) { 73 switch (v.getId()) { 74 case R.id.btn_1: 75 //發生點擊事件時直接跳轉到首界面 76 Intent intent = new Intent(MainActivity.this, HomeActivity.class); 77 startActivity(intent); 78 finish(); 79 if (runnable != null) { 80 handler.removeCallbacks(runnable); 81 } 82 break; 83 default: 84 break; 85 } 86 87 } 88 } 89
在上面的代碼中,btn_1是我在activity_main中設置的進入的按鈕的id,他的跳轉是建立在這個Button之上的。