歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android應用開發之Activity的簡單布局切換

Activity到底是什麼怎麼用,到現在感覺心裡還是沒底的,說不太清楚,看文檔的時候發現一大堆方法,這裡我只寫了簡單布局的切換,至於以後Activity的用法方法,我會慢慢學習的。

1、什麼是activity

Activity是一種互動的界面,一個界面可能有多個Activity組成。

2、演示activity的鍵盤及觸摸事件

下面演示的是一個當鍵盤按下布局切換,鍵盤彈出布局切換的一個效果,已經觸摸事件的掩飾Info信息

view plain
  1. public class ActivityTestActivity extends Activity {  
  2.     /** Called when the activity is first created. */  
  3.     private final static String TAG="myTag";  
  4.     boolean flag = true;  
  5.     @Override  
  6.     public void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.main);  
  9.           
  10.     }  
  11.   
  12.     @Override  
  13.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  14.         if(flag){  
  15.             this.setContentView(R.layout.second);  
  16.         }else{  
  17.             this.setContentView(R.layout.main);  
  18.         }  
  19.           
  20.         Log.i(TAG, "onkeydown");  
  21.         showInfo("keydown"+keyCode);  
  22.         return super.onKeyDown(keyCode, event);  
  23.     }  
  24.   
  25.     @Override  
  26.     public boolean onKeyUp(int keyCode, KeyEvent event) {  
  27.         flag = !flag;  
  28.         Log.i(TAG, "onkeyUp");  
  29.         showInfo("keyup"+keyCode);  
  30.         return super.onKeyUp(keyCode, event);  
  31.     }  
  32.   
  33.     @Override  
  34.     public boolean onTouchEvent(MotionEvent event) {  
  35.         Log.i(TAG, "onTouchEvent");  
  36.         showInfo("keytouch"+event.getX()+"  "+event.getY());  
  37.         return super.onTouchEvent(event);  
  38.     }  
  39.     public void showInfo(String info){  
  40.         Toast.makeText(this, info, Toast.LENGTH_SHORT).show();  
  41.     }  
  42.       
  43. }  


3、實現一個activity中多個布局頁面的切換

a、利用按鈕實現

通過給button添加事件監聽器onClickListener,是button直接的方法互相調用,從而實現兩個界面的切換。

view plain
  1. package cn.csdn.hb;  
  2. import Android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.view.View;  
  5. import android.widget.Button;  
  6.   
  7. public class Change extends Activity {  
  8.     public void onCreate(Bundle savedInstanceState) {  
  9.         super.onCreate(savedInstanceState);  
  10.         setContentView(R.layout.main);  
  11.           
  12.           
  13.         Button btn1 = (Button) findViewById(R.id.button1);  
  14.         btn1.setOnClickListener(new Button.OnClickListener() {  
  15.             public void onClick(View v) {  
  16.                 Button1();  
  17.             }  
  18.         });  
  19.     }  
  20.   
  21.     public void Button1() {  
  22.         setContentView(R.layout.second);  
  23.         Button btn2 = (Button) findViewById(R.id.button2);  
  24.         btn2.setOnClickListener(new Button.OnClickListener() {  
  25.             public void onClick(View v) {  
  26.                 Button2();  
  27.             }  
  28.         });  
  29.     }  
  30.   
  31.     public void Button2() {  
  32.         setContentView(R.layout.main);  
  33.         Button b1 = (Button) findViewById(R.id.button1);  
  34.         b1.setOnClickListener(new Button.OnClickListener() {  
  35.             public void onClick(View v) {  
  36.                 Button1();  
  37.             }  
  38.         });  
  39.     }  
  40. }  

b、利用鍵盤或觸摸實現


4、不同activity間的切換

如果想使兩個Activity切換,那麼肯定要使用我們具有橋梁作用的Intent

下面我分別寫了兩個xml文件,每個xml中分別放置了兩個button,分別為button1和button2,在這裡就不寫了,我們將要實現的效果是當點擊第一個Activity裡面的button時切換到第2個Activity,當點擊到第2個Activity裡的button時,切換到第一個Activity。

如圖:

第一個Activity:

view plain
  1. public class ActivityTestActivity extends Activity {  
  2.     /** Called when the activity is first created. */  
  3.     private final static String TAG="myTag";  
  4.     boolean flag = true;  
  5.     @Override  
  6.     public void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.main);  
  9.         Button bn = (Button)findViewById(R.id.button1);  
  10.         bn.setOnClickListener(new View.OnClickListener() {  
  11.               
  12.             @Override  
  13.             public void onClick(View v) {  
  14.                     //創建啟動的Activity對應的Intent  
  15.                                   
  16.   
  17.                 Intent intent =new Intent(ActivityTestActivity.this,SecondActivity.class);  
  18.                                 //動intent對應的Activity          
  19.                         startActivity(intent);  
  20.             }  
  21.         });  
  22.     }  

第二個Activity:

view plain
  1. package song.activity;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.widget.Button;  
  8.   
  9. public class SecondActivity extends Activity {  
  10.     @Override  
  11.     public void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         setContentView(R.layout.second);  
  14.         Button bn2 = (Button)findViewById(R.id.button2);  
  15.         bn2.setOnClickListener(new View.OnClickListener() {  
  16.               
  17.             @Override  
  18.             public void onClick(View v) {  
  19.                 Intent intent = new Intent(SecondActivity.this,ActivityTestActivity.class);  
  20.                 startActivity(intent);  
  21.             }  
  22.         });  
  23.     }  
  24.       
  25.       
  26. }  
Copyright © Linux教程網 All Rights Reserved