您好,登錄后才能下訂單哦!
怎么在Android中利用setContentView實(shí)現(xiàn)一個(gè)頁(yè)面的轉(zhuǎn)換效果?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
實(shí)現(xiàn)思路如下:
在第一個(gè)Activity的布局中添加一個(gè)Button,實(shí)現(xiàn)點(diǎn)擊事件
點(diǎn)擊該Button,調(diào)用setContentView,傳入第二個(gè)頁(yè)面的Layout,第二個(gè)頁(yè)面就顯示出來(lái)了
第二個(gè)頁(yè)面的布局中仍然有一個(gè)Button,仍然實(shí)現(xiàn)其點(diǎn)擊事件
點(diǎn)擊該Button,調(diào)用setContentView,傳入第一個(gè)頁(yè)面的Layout,第一個(gè)頁(yè)面就顯示回來(lái)了
因此,有點(diǎn)類(lèi)似相互嵌套調(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)到第二個(gè)頁(yè)面 jumpToLayout2(); } }); } private void jumpToLayout2() { // 設(shè)置第二個(gè)頁(yè)面的布局 setContentView(R.layout.layout2); Button button2 = findViewById(R.id.buttonGoToLayout1); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 在第二個(gè)頁(yè)面中,點(diǎn)擊Button,跳轉(zhuǎn)到第一個(gè)頁(yè)面 jumpToLayout1(); } }); } private void jumpToLayout1() { // 設(shè)置第一個(gè)頁(yè)面d的布局 setContentView(R.layout.main_page_layout); Button button = findViewById(R.id.buttonGoToLayout2); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 點(diǎn)擊第一個(gè)頁(yè)面的Button,跳轉(zhuǎn)到第二個(gè)頁(yè)面 jumpToLayout2(); } }); } }
1、第一個(gè)頁(yè)面布局: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、第二個(gè)頁(yè)面布局: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>
通過(guò)setContentView實(shí)現(xiàn)頁(yè)面切換,相比Activity切換有個(gè)特別的優(yōu)點(diǎn):
所有程序里的變量都存在相同的狀態(tài):類(lèi)成員變量、類(lèi)函數(shù)等,都可以在同一個(gè)Activity中直接獲得,沒(méi)有參數(shù)傳遞的問(wèn)題。比如:
Layout1收集了用戶(hù)輸入的銀行卡號(hào)碼等付款信息,點(diǎn)擊“下一步”進(jìn)入Layout2顯示訂單信息,讓用戶(hù)確認(rèn),用戶(hù)點(diǎn)擊“確認(rèn)”按鈕后,進(jìn)入Layout3進(jìn)行付款的授權(quán)操作,整個(gè)過(guò)程沒(méi)有變量的傳遞。
看完上述內(nèi)容,你們掌握怎么在Android中利用setContentView實(shí)現(xiàn)一個(gè)頁(yè)面的轉(zhuǎn)換效果的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。