android应用开发之Activity的简单布局切换

来源:互联网 发布:跨数据库关联查询 编辑:程序博客网 时间:2024/05/16 05:27

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. }  
原创粉丝点击