Android使用setContentView實現(xiàn)頁面的轉(zhuǎn)換效果
一提到Android中頁面的切換,你是不是只想到了startActivity啟動另一個Activity?
其實在Android中,可以直接利用setContentView達(dá)到類似頁面轉(zhuǎn)換效果的!實現(xiàn)思路如下:
- 在第一個Activity的布局中添加一個Button,實現(xiàn)點擊事件
- 點擊該Button,調(diào)用setContentView,傳入第二個頁面的Layout,第二個頁面就顯示出來了
- 第二個頁面的布局中仍然有一個Button,仍然實現(xiàn)其點擊事件
- 點擊該Button,調(diào)用setContentView,傳入第一個頁面的Layout,第一個頁面就顯示回來了
因此,有點類似相互嵌套調(diào)用,源代碼如下:
public class ExampleActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_page_layout);
Button button = findViewById(R.id.buttonGoToLayout2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 跳轉(zhuǎn)到第二個頁面
jumpToLayout2();
}
});
}
private void jumpToLayout2() {
// 設(shè)置第二個頁面的布局
setContentView(R.layout.layout2);
Button button2 = findViewById(R.id.buttonGoToLayout1);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 在第二個頁面中,點擊Button,跳轉(zhuǎn)到第一個頁面
jumpToLayout1();
}
});
}
private void jumpToLayout1() {
// 設(shè)置第一個頁面d的布局
setContentView(R.layout.main_page_layout);
Button button = findViewById(R.id.buttonGoToLayout2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 點擊第一個頁面的Button,跳轉(zhuǎn)到第二個頁面
jumpToLayout2();
}
});
}
}
兩個布局文件如下:
1、第一個頁面布局:main_page_layout.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is Layout One"
android:paddingTop="20dp"
android:textSize="30sp"/>
<Button
android:text="Go to Layout Two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/buttonGoToLayout2"
android:layout_marginTop="20dp"
android:layout_below="@id/textView1"/>
</RelativeLayout>
2、第二個頁面布局:layout2.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black" >
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is Layout Two"
android:paddingTop="20dp"
android:textColor="@android:color/white"
android:textSize="30sp"/>
<Button
android:text="Go to Layout One"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/buttonGoToLayout1"
android:layout_marginTop="20dp"
android:layout_below="@id/textView2"/>
</RelativeLayout>
通過setContentView實現(xiàn)頁面切換,相比Activity切換有個特別的優(yōu)點:
所有程序里的變量都存在相同的狀態(tài):類成員變量、類函數(shù)等,都可以在同一個Activity中直接獲得,沒有參數(shù)傳遞的問題。比如:
Layout1收集了用戶輸入的銀行卡號碼等付款信息,點擊“下一步”進(jìn)入Layout2顯示訂單信息,讓用戶確認(rèn),用戶點擊“確認(rèn)”按鈕后,進(jìn)入Layout3進(jìn)行付款的授權(quán)操作,整個過程沒有變量的傳遞。
以上就是Android使用setContentView實現(xiàn)頁面的轉(zhuǎn)換效果的詳細(xì)內(nèi)容,更多關(guān)于Android 頁面轉(zhuǎn)換效果的資料請關(guān)注腳本之家其它相關(guān)文章!
- 源碼詳解Android中View.post()用法
- Android自定義View仿大眾點評星星評分控件
- Android 滑動Scrollview標(biāo)題欄漸變效果(仿京東toolbar)
- Android使用ScrollView實現(xiàn)滾動效果
- Android 中 WebView 的基本用法詳解
- Android使用TypeFace設(shè)置TextView的文字字體
- Android自定義view之太極圖的實現(xiàn)教程
- Android自定義view之圍棋動畫效果的實現(xiàn)
- Android自定義View實現(xiàn)分段選擇按鈕的實現(xiàn)代碼
- Android View.Post 的原理及缺陷
相關(guān)文章
Android獲得當(dāng)前正在顯示的activity類名的方法
這篇文章主要介紹了Android獲得當(dāng)前正在顯示的activity類名的方法,分析了權(quán)限的修改與Java代碼的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-01-01
android教程之使用asynctask在后臺運行耗時任務(wù)
AsyncTask用在需要在ui線程中調(diào)用、在背景線程中執(zhí)行耗時任務(wù)、并且在ui線程中返回結(jié)果的場合。下面就是一個在背景中運行的AsyncTask的實現(xiàn)DownloadDBTask2014-02-02
點擊微信內(nèi)網(wǎng)頁a標(biāo)簽直接跳轉(zhuǎn)打開淘寶APP的方法實例
這篇文章主要給大家介紹了關(guān)于如何實現(xiàn)點擊微信內(nèi)網(wǎng)頁a標(biāo)簽直接跳轉(zhuǎn)打開淘寶APP的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-11-11
Android開發(fā)進(jìn)階自定義控件之滑動開關(guān)實現(xiàn)方法【附demo源碼下載】
這篇文章主要介紹了Android開發(fā)進(jìn)階自定義控件之滑動開關(guān)實現(xiàn)方法,結(jié)合實例形式詳細(xì)分析了Android自定義開關(guān)控件的原理、實現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2016-08-08
Android使用自定義View實現(xiàn)橫行時間軸效果
這篇文章主要給大家介紹了關(guān)于Android使用自定義View實現(xiàn)橫行時間軸效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Android具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

