在线看片电视剧免费看,精品国产一区二区三区2021,99久久久无码国产精品免费,精品人妻少妇嫩草AV无码专区

    電話(huà)

    0411-39943997

仟億科技
客服中心
  • 電話(huà)
  • 電話(huà)咨詢(xún):0411-39943997
  • 手機
  • 手機咨詢(xún):15840979770
    手機咨詢(xún):13889672791
網(wǎng)絡(luò )營(yíng)銷(xiāo) >更多

Android安卓頁(yè)面切換辦法和差別

作者:billionnet 發(fā)布于:2012/3/28 17:54:17 點(diǎn)擊量:

通用的頁(yè)面跳轉辦法有兩種:


1、Intent


Intent合適Activity與Activity之間的跳轉,按返回鍵可以直接返回前一頁(yè)面


毛?。喉氁組anifest注冊Activity


2、setContentView


合適同一Activity里的不合View之間跳轉


長(cháng)處:按返回鍵不會(huì )返回到前一頁(yè)面,須要本身添加按鍵監聽(tīng)代碼來(lái)實(shí)現


 


只切換Layout運行速度會(huì )快點(diǎn),因為啟動(dòng)activity是最耗時(shí)的。
數據傳遞也簡(jiǎn)單,不消Intent.setExtra之類(lèi)的。
毛病是所有控件的事務(wù)處理懲罰、加載之類(lèi)的操縱全集中由activity經(jīng)管,拆分不敷清楚 


 


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;

public class IntentTest extends Activity {
    
    private LinearLayout mainView=null;
    private Button button1=null;
    private Button button2=null;
    
    private LinearLayout layout=null;
    private TextView tv=null;
    
    /*
     * 因為setContentVeiw()函數返回是void,體系中沒(méi)有供給獲取當前View的函數
     * 所以此處添加一個(gè)整形變量用來(lái)指導當前View的id
     */
    private int currentViewId;
    
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //tv初始化
        tv=new TextView(this);
        tv.setText("這是layout里面的tv");
        //layout初始化
        layout=new LinearLayout(this);
        layout.setId(100);//這里須要指定id,不然默認的id會(huì )和mainView一樣,都是-1
        layout.setLayoutParams(new LinearLayout.LayoutParams(-1,-1));
        layout.addView(tv);
        //button1初始化
        button1=new Button(this);
        button1.setLayoutParams(new LinearLayout.LayoutParams(-2,-2));
        button1.setText("Intent體式格式跳轉");
        button1.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                /*此處用Intent來(lái)實(shí)現Activity與Activity之間的跳轉*/
                Intent intent=new Intent();
                intent.setClass(IntentTest.this,MyActivity.class);
                //Intent intent=new Intent(IntentTest.this,MyActivity.class);
                startActivity(intent);
            }
        });
        //button2初始化
        button2=new Button(this);
        button2.setLayoutParams(new LinearLayout.LayoutParams(-2,-2));
        button2.setText("setContentView體式格式跳轉");
        button2.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                //此處用setContentView體式格式來(lái)實(shí)現同一Activity不合View跳轉
                setCurrentView(layout);
            }
        });
        //mianView初始化
        mainView=new LinearLayout(this);
        mainView.setId(1000);//指定id
        mainView.setLayoutParams(new LinearLayout.LayoutParams(-1,-1));
        mainView.setOrientation(LinearLayout.VERTICAL);
        mainView.addView(button1);
        mainView.addView(button2);
        //顯示mainView
        setCurrentView(mainView);
    }
    
    /*
     * 這里重寫(xiě)onKeyDown()函數,實(shí)現返回鍵的監聽(tīng)
     * 若是經(jīng)由過(guò)程顯示的View對keyListener進(jìn)行監聽(tīng),則返回鍵監聽(tīng)不到
     * 所以此處是經(jīng)由過(guò)程在A(yíng)ctivity里面重寫(xiě)onKeyDown()函數來(lái)實(shí)現監聽(tīng)
     * 此處若是不阻礙監聽(tīng)的話(huà),在顯示layout后按返回鍵則直接履行退出法度
     */
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if (keyCode == KeyEvent.KEYCODE_BACK) { 
            if(currentViewId==layout.getId()){
                setCurrentView(mainView);
            }else{
                System.exit(0);
            }
            return false; 
        } 
        return false; 
    }
    
    /*自定義函數setCurrentView()*/
    public void setCurrentView(View view){
        currentViewId=view.getId();
        //此處用setContentView體式格式來(lái)實(shí)現同一Activity不合View跳轉
        setContentView(view);
    }
}


import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MyActivity extends Activity{
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView tv=new TextView(this);
        tv.setText("我是MyActivity里的tv");
        setContentView(tv);
    }
}


 



分享到:


Copyright@ 2011-2016 版權所有:大連千億科技有限公司 遼ICP備11013762-3號   google網(wǎng)站地圖   百度網(wǎng)站地圖   網(wǎng)站地圖

公司地址:大連市沙河口區中山路692號辰熙星海國際2317 客服電話(huà):0411-39943997 QQ:2088827823 37482752

法律聲明:未經(jīng)許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利! 隱私權政策聲明

日本亲与子乱人妻HD| 蜜臀av性久久久久蜜臀aⅴ麻豆| 青草青草久热国产精品| 亚洲一区二区三区波多野结衣| 欧美丰满熟妇乱XXXXX视频| 亚洲旡码A∨一区二区三区|