1. 程式人生 > >android 3秒鐘自動關閉介面(以支付成功為例)

android 3秒鐘自動關閉介面(以支付成功為例)

功能如標題所示,看圖說話,程式碼簡單,註釋清晰,一目瞭然:

                        

3秒過後進入下一介面:

PaySuccessActivity.java

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
/** * 支付成功頁面 *http://download.csdn.net/user/qq_29614465 */ public class PaySuccessActivity extends Activity { private ImageView im_back; private TextView tv_title; private TextView tv_paysuccess_time;//開始是3秒 private ImageView im_paysuccess;//對號 private Button b; private Boolean abc=false;@Override protected void onCreate
(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.paysuccess); im_back= (ImageView) findViewById(R.id.im_back);tv_title= (TextView) findViewById(R.id.tv_title); tv_title.setText("支付成功"); tv_paysuccess_time=(TextView) findViewById(R.id.paysuccess_time
); im_paysuccess= (ImageView) findViewById(R.id.paysuccess_im); im_paysuccess.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //點選成功後跳轉到當前訂單的介面 Intent intent = new Intent(PaySuccessActivity.this, AfterPayActivity.class); startActivity(intent); finish(); abc=true; } }); CountDownTextViewHelper helper_pay=new CountDownTextViewHelper(tv_paysuccess_time, "0", 3, 1); helper_pay.setOnFinishListener(new CountDownTextViewHelper.OnFinishListener() { @Override public void finish() { // TODO Auto-generated method stub if (abc==false) { Intent intent2 = new Intent(PaySuccessActivity.this, AfterPayActivity.class); startActivity(intent2);} } });helper_pay.start();} }
AfterPayActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
 * 3秒關閉後進入的介面 *http://download.csdn.net/user/qq_29614465
 */
public class AfterPayActivity extends Activity {
    private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.after_pay);
btn=(Button) findViewById(R.id.button_close);
btn.setOnClickListener(new OnClickListener() {
            @Override
public void onClick(View arg0) {
                // TODO Auto-generated method stub
finish();
}
        });
}
}
CountDownTextViewHelper.java
import android.graphics.Color;
import android.os.CountDownTimer;
import android.util.Log;
import android.widget.TextView;/**
 * 倒計時TextView幫助類
 * http://download.csdn.net/user/qq_29614465
 */
public class CountDownTextViewHelper {
    // 倒計時
private CountDownTimer countDownTimer;
// 倒計時結束的回撥介面
private OnFinishListener listener;private TextView textView;/**
     *
     * @param textView
*            需要顯示倒計時的TextView
     * @param defaultString
*            預設顯示的字串
     * @param max
*            需要進行倒計時的最大值,單位是秒
     * @param interval
*            倒計時的間隔,單位是秒
     */
public CountDownTextViewHelper(final TextView textView,
final String defaultString, int max, int interval) {
        this.textView = textView;
// 由於CountDownTimer並不是準確計時,在onTick方法呼叫的時候,time會有1-10ms左右的誤差,這會導致最後一秒不會呼叫onTick()
        // 因此,設定間隔的時候,預設減去了10ms,從而減去誤差。
        // 經過以上的微調,最後一秒的顯示時間會由於10ms延遲的積累,導致顯示時間比1s長max*10ms的時間,其他時間的顯示正常,總時間正常
countDownTimer = new CountDownTimer(max * 1000, interval * 1000 - 10) {
            @Override
public void onTick(long time) {
                // 第一次呼叫會有1-10ms的誤差,因此需要+15ms,防止第一個數不顯示,第二個數顯示2s
textView.setText(((time + 15) / 1000)
                        + "");
textView.setTextColor(Color.BLACK);
Log.d("CountDownTextViewHelper", "time = " + (time) + " text = "
+ ((time + 15) / 1000));
}
            @Override
public void onFinish() {
                textView.setEnabled(true);
textView.setText(defaultString);
if (listener != null) {
                    listener.finish();
}
            }
        };
}
    /**
     * 開始   倒計時
     */
public void start() {
        textView.setEnabled(false);
countDownTimer.start();
}
    /**
     * 設定倒計時結束的監聽器     * @param listener
*/
public void setOnFinishListener(OnFinishListener listener) {
        this.listener = listener;
}
    /**
     * 倒計時結束的回撥介面
     */
public interface OnFinishListener {
        public void finish();
}
}
到這裡就是全部的關鍵程式碼了,佈局檔案當然由你自己處理了,如果想

相關推薦

android 3秒鐘自動關閉介面(支付成功)

功能如標題所示,看圖說話,程式碼簡單,註釋清晰,一目瞭然:                          3秒過後進入下一介面: PaySuccessActivity.java import android.app.Activity; import android

QT QDialog 對話方塊顯示幾秒鐘自動關閉

在實際開發中,我們會有這樣一種需求,一個提示框,使用者可以手動關閉,或者在使用者沒有操作的情況下,顯示3秒鐘然後自動關閉,這樣應該怎樣做呢?我們的思路應該是這樣的:1.對話方塊建構函式裡,設定一個定時器

1、利用介面實現動態的建立物件[選做題] 1.1 建立4個類: 蘋果 香蕉 葡萄 園丁 1.2 在三種水果的構造方法中列印一句話. 蘋果類

package javademo9; import java.util.Scanner; interface Fruit{ } class Apple implements Fruit { public Apple() { System.out.println("建立了一個蘋

Android HAL hardware module分析 GPS module

準備在S5PV210的android系統中實現GPS功能,程式已經寫好了,也可以編譯出gps.s5pc110.so的庫,但是不知道上層怎麼呼叫這個庫,在GPS相關的Android.mk中也沒有找到,很是納悶。通過分析hardware module才知道是怎麼回事,之前並沒有詳細的瞭解hardware modu

Android 6.0許可權管理以及動態申請,定位許可權

前言: 我們都知道現在手機系統已經到了很高的版本,在我們的Android6.0以後很多許可權都被列入危險許可權,都需要使用者手動去確認 1.我們先來看一下6.0以後被列為危險級別的一些許可權

android jni 包裹檔案(jni wrapper) speex 庫

參考資料: 1 http://code.google.com/p/android-recorder/downloads/list  這個是一個android recorder ,使用speex編碼,程式碼很乾淨,推薦一讀 2 http://andrewbrobinson.c

藍芽(BLE)應用框架介面設計和應用開發——TI CC2541

本文從功能需求的角度分析一般藍芽BLE單晶片的應用框架(SDK Framework)的介面設計過程,並以TI CC2541為例說明BLE的應用開發方法。一、應用框架(Framework)我們熟知的Fra

實習點滴(3)--“詞性標註”理解CRF演算法

        看了CRF相關的東西好幾天了,現在也過來總結總結。我本人喜歡以講故事的方式闡述一些東西,純理論總是很抽象,而且很容易讓人失去耐心。那就以“詞性標註”為切入點,去理解一下CRF(Conditional Random Field)條件隨機場的演算法原理(難免有不

Android情景分析之詳解init程序(啟動zygote

概述 init是linux系統中使用者空間的第一個程序。由於Android是基於linux核心的,所以init也是Android系統中使用者空間的第一個程序,它的程序號為1。 作為系統中的第一個使用者空間程序,init程序被賦予了很多及其重要的工作職責。 1.      i

uboot中 make xxx_config 的作用(make smdk2410_config

mdk nbsp xxx cpu clu samsung uboot 作用 頭文件 1、創建到目標板相關文件的鏈接 ln -s asm-arm asm ln -s arch-s3c24x0 asm-arm/arch ln -s proc-armv asm-arm/pr

基於TI Davinci架構的多核/雙核開發高速掃盲(OMAP L138),dm8168多核開發參考以及達芬奇系列資料user guide整理

uwa 全部 dap setting pos eclips develop serial ger 基於TI Davinci架構的雙核嵌入式應用處理器OMAPL138開發入門 原文轉自http://blog.csdn.net/wangpengqi/article/de

解決jenkins下使用HTML Publisher插件後查看html報告顯示不正常 jmeter報告

com 顯示不全 rip lis support https ima 註意 jenkins jenkins 配置使用html publisher查看jmeter html報告時,發現顯示不全,很多東西顯示不了。 項目配置: 查看html報告異常(很多資源無法加載)

更新CentOS Mysql到官方較新版本[6.5]

生成 inux 依次 font fig 目前 http line spa 需求來源: CentOS: 6.9 x64 自帶mysql版本較舊,需要卸載後安裝到5.6版本. 1.查看目前mysql 版本 2.如果發現有系統自帶mysql,而且比想要裝的5.6舊。果斷

大堆文字不如幾張圖片-論信息傳遞的方式NodeMCU入門

3-9 信息 nbsp mcu 入門 logs 文字 src 圖片 大堆文字不如幾張圖片-論信息傳遞的方式以NodeMCU入門為例

LINUX下PHP編譯添加相應的動態擴展模塊so(不需要重新編譯PHP,openssl.so

down get 階段 很多 習慣 lin 模塊 臨時 操作 本文轉自:原文鏈接 http://www.cnblogs.com/doseoer/p/4367536.html 網上我看到有很多相關的文章都是簡述這個問題的,但畢竟因為LINUX版本眾多,很多LIUNX命令或路

C#語言中數組與集合的區別(List集合

類型 添加元素 list 添加 一個 保存 操作方法 適用於 length 數組用於保存固定數量的數據,定長,占用內存少,遍歷速度快; 集合保存的數據數量,可以在程序的執行過程中,不斷發生變化,不定長,占用內存多,遍歷速度慢; 在功能上,數組能實現的所有功能,集合都能實現;

虛擬機訪問互聯網的方法 -- RedHat系

路徑 網絡連接 p地址 註意 ipad etc 不能訪問外網 正常 情況下   在虛擬機的三種網絡模式中(Host-Only、橋接、NAT),能夠實現虛擬機訪問互聯網的只有橋接與NAT模式,而Host-only主能實現虛擬機與主機兩者間的通信。 下面以RedHat系虛擬機系

微信識別圖片功能實現(讀取銀行卡)

支付 ref gb2312 sta mil img 身份證識別 manager his 一,需求講解 如圖所示,掃描圖片的時候,實現銀行卡號和銀行名稱自動回填。 二,代碼 2.1,html頁面 1 <input type="file

配置Nginx反向代理WebSocket,代理NoVNC

websocket nginx novnc linux 什麽是Nginx?Nginx (engine x) 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在

BZOJ 2002 學習有根樹LCT(Link-Cut Tree)

接下來 int 操作 sel com char 如何實現 etc 慢慢 以BZOJ 2002 彈飛綿羊為例學習有根樹LCT(Link-Cut Tree) 註:本文非常簡單,只涉及有根樹LCT,對於無根樹,LCT還有幾個本文沒有提到的操作,以後慢慢更新 =v= 知識儲備