大陆性a及毛片,日韩精品不卡,国产精品第四页,日韩黄在线观看,欧美三级一区二区,国产中出在线观看,日韩久久久精品

    電話

    0411-39943997

仟億科技
客服中心
  • 電話
  • 電話咨詢:0411-39943997
  • 手機(jī)
  • 手機(jī)咨詢:15840979770
    手機(jī)咨詢:13889672791
網(wǎng)絡(luò)營(yíng)銷 >更多
您現(xiàn)在的位置:首頁(yè) > 新聞中心 > 常見問(wèn)題

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

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

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


1、Intent


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


毛?。喉氁組anifest注冊(cè)Activity


2、setContentView


合適同一Activity里的不合View之間跳轉(zhuǎn)


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


 


只切換Layout運(yùn)行速度會(huì)快點(diǎn),因?yàn)閱?dòng)activity是最耗時(shí)的。
數(shù)據(jù)傳遞也簡(jiǎn)單,不消Intent.setExtra之類的。
毛病是所有控件的事務(wù)處理懲罰、加載之類的操縱全集中由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;
    
    /*
     * 因?yàn)閟etContentVeiw()函數(shù)返回是void,體系中沒(méi)有供給獲取當(dāng)前View的函數(shù)
     * 所以此處添加一個(gè)整形變量用來(lái)指導(dǎo)當(dāng)前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,不然默認(rèn)的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體式格式跳轉(zhuǎn)");
        button1.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                /*此處用Intent來(lái)實(shí)現(xiàn)Activity與Activity之間的跳轉(zhuǎn)*/
                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體式格式跳轉(zhuǎn)");
        button2.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                //此處用setContentView體式格式來(lái)實(shí)現(xiàn)同一Activity不合View跳轉(zhuǎn)
                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);
    }
    
    /*
     * 這里重寫onKeyDown()函數(shù),實(shí)現(xiàn)返回鍵的監(jiān)聽
     * 若是經(jīng)由過(guò)程顯示的View對(duì)keyListener進(jìn)行監(jiān)聽,則返回鍵監(jiān)聽不到
     * 所以此處是經(jīng)由過(guò)程在Activity里面重寫onKeyDown()函數(shù)來(lái)實(shí)現(xiàn)監(jiān)聽
     * 此處若是不阻礙監(jiān)聽的話,在顯示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; 
    }
    
    /*自定義函數(shù)setCurrentView()*/
    public void setCurrentView(View view){
        currentViewId=view.getId();
        //此處用setContentView體式格式來(lái)實(shí)現(xiàn)同一Activity不合View跳轉(zhuǎn)
        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 版權(quán)所有:大連千億科技有限公司 遼ICP備11013762-3號(hào)   google網(wǎng)站地圖   百度網(wǎng)站地圖   網(wǎng)站地圖

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

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