Android使用setContentView實現(xiàn)頁面的轉(zhuǎn)換效果
一提到Android中頁面的切換,你是不是只想到了startActivity啟動另一個Activity?其實在Android中,可以直接利用setContentView達到類似頁面轉(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'> <TextViewandroid: android:layout_width='match_parent'android:layout_height='wrap_content'android:text='This is Layout One'android:paddingTop='20dp'android:textSize='30sp'/> <Buttonandroid:text='Go to Layout Two'android:layout_width='wrap_content'android:layout_height='wrap_content'android: 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: 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: android:layout_marginTop='20dp' android:layout_below='@id/textView2'/></RelativeLayout>
通過setContentView實現(xiàn)頁面切換,相比Activity切換有個特別的優(yōu)點:
所有程序里的變量都存在相同的狀態(tài):類成員變量、類函數(shù)等,都可以在同一個Activity中直接獲得,沒有參數(shù)傳遞的問題。比如:
Layout1收集了用戶輸入的銀行卡號碼等付款信息,點擊“下一步”進入Layout2顯示訂單信息,讓用戶確認,用戶點擊“確認”按鈕后,進入Layout3進行付款的授權(quán)操作,整個過程沒有變量的傳遞。
以上就是Android使用setContentView實現(xiàn)頁面的轉(zhuǎn)換效果的詳細內(nèi)容,更多關(guān)于Android 頁面轉(zhuǎn)換效果的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. Springboot Druid 自定義加密數(shù)據(jù)庫密碼的幾種方案2. 詳解Android studio 動態(tài)fragment的用法3. 解決Android studio xml界面無法預(yù)覽問題4. Spring Boot和Thymeleaf整合結(jié)合JPA實現(xiàn)分頁效果(實例代碼)5. 什么是python的自省6. Vuex localStorage的具體使用7. php模擬實現(xiàn)斗地主發(fā)牌8. Spring MVC+ajax進行信息驗證的方法9. Vue封裝一個TodoList的案例與瀏覽器本地緩存的應(yīng)用實現(xiàn)10. 使用Android studio查看Kotlin的字節(jié)碼教程

網(wǎng)公網(wǎng)安備