Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android通過setContentView切換頁面示例(華為U9200下測試,最短切換耗時2ms,穩定在6-8ms)

Android通過setContentView切換頁面示例(華為U9200下測試,最短切換耗時2ms,穩定在6-8ms)

編輯:關於Android編程

    一般切換頁面,通過Intent,startActivity可以實現,但系統創建Activity是非常耗時的,如果對切換畫面時間有要求,只能用setContentView在同一activity下切換頁面,這樣做切換快,但會增加程序邏輯控制的難度。在工業產品中,任何一個參數都是參與競爭的籌碼,開機時間、畫面切換時間等都是重要衡量因素。一般切換頁面的時間在150ms以上,用戶就會有反應,也就是說眼睛可以分辨,要等一小下才能看到跳轉的頁面。

           下面上一個android開發,用setContentView來切換頁面的例子,主要是程序部分,布局部分很簡單,每個布局裡都只有個按鈕,分別是“切換”和“返回”,在手機上測試,最短切換耗時2ms,穩定在6-8ms之間。

 

package com.example.learntest;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

 long time = (long)0.0;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main);
  Button btn_mainActivity  = (Button)findViewById(R.id.btn_mainAc_1);
  btn_mainActivity.setOnClickListener(new ButtonListen());


 }

 

 class ButtonListen implements OnClickListener{

  public void onClick(View v) {
   // TODO Auto-generated method stub
   time = System.currentTimeMillis();
   switch(v.getId()){
   case R.id.btn_mainAc_1:
    Jump2Second();
    break;
   case R.id.btn_secondA_1:
    Jump2Main();
    break;
   default:
    break;
   }
  }

 }        //按鈕監聽部分,為了方便閱讀和管理,我寫到一個類裡面,用case判斷。建議類似環境都這麼搞!

  


 public void Jump2Second(){
  setContentView(R.layout.activity_second);
  long currTime = System.currentTimeMillis();
  Toast.makeText(MainActivity.this,
    "切換耗時:" +String.valueOf(currTime-time)+"毫秒",
    Toast.LENGTH_SHORT).show();
  Button btn_secondActivity = (Button)findViewById(R.id.btn_secondA_1);
  btn_secondActivity.setOnClickListener(new ButtonListen());
 }    //跳轉到第二個頁面方法實現


 public void Jump2Main(){
  setContentView(R.layout.activity_main);
  long currTime = System.currentTimeMillis();
  Toast.makeText(MainActivity.this,
    "切換耗時:" +String.valueOf(currTime-time)+"毫秒",
    Toast.LENGTH_SHORT).show();
  Button btn_mainActivity = (Button)findViewById(R.id.btn_mainAc_1);
  btn_mainActivity.setOnClickListener(new ButtonListen());
 }
}   //返回到第一個頁面方法實現


至此,總結下,主要分為四部分:

1,onCreate方法裡,要設置監聽,進入後續的監聽循環

2,監聽方法實現,判斷是來自哪個按鈕,每個按鈕的R.id....都是唯一固定的

3,Jump2Second方法的實現,這裡首先將頁面設置成第二個layout,然後要再次findViewById一下

Button btn_secondActivity = (Button)findViewById(R.id.btn_secondA_1);

btn_secondActivity.setOnClickListener(new ButtonListen());
再次設置監聽。
這一點我也比較郁悶,跳轉過後,都要find一下。如果把這兩個button設置成全局變量,還是不中!設置成static變量也不中,跳轉頁面後,一定要再次findViewById一下,設置監聽,才能保證程序正常的邏輯。這塊有更方便的方法麼???知道如何解決的大神 指點一下後輩。。。。。。。。

4,Jump2Main的實現與之類似。不重復。
 


作者:yanzi1225627
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved