歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android應用開發之Activity的簡單布局切換

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

日期:2017/3/1 10:49:29   编辑:Linux編程

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. @Override
  11. public boolean onKeyDown(int keyCode, KeyEvent event) {
  12. if(flag){
  13. this.setContentView(R.layout.second);
  14. }else{
  15. this.setContentView(R.layout.main);
  16. }
  17. Log.i(TAG, "onkeydown");
  18. showInfo("keydown"+keyCode);
  19. return super.onKeyDown(keyCode, event);
  20. }
  21. @Override
  22. public boolean onKeyUp(int keyCode, KeyEvent event) {
  23. flag = !flag;
  24. Log.i(TAG, "onkeyUp");
  25. showInfo("keyup"+keyCode);
  26. return super.onKeyUp(keyCode, event);
  27. }
  28. @Override
  29. public boolean onTouchEvent(MotionEvent event) {
  30. Log.i(TAG, "onTouchEvent");
  31. showInfo("keytouch"+event.getX()+" "+event.getY());
  32. return super.onTouchEvent(event);
  33. }
  34. public void showInfo(String info){
  35. Toast.makeText(this, info, Toast.LENGTH_SHORT).show();
  36. }
  37. }


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. public class Change extends Activity {
  7. public void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.main);
  10. Button btn1 = (Button) findViewById(R.id.button1);
  11. btn1.setOnClickListener(new Button.OnClickListener() {
  12. public void onClick(View v) {
  13. Button1();
  14. }
  15. });
  16. }
  17. public void Button1() {
  18. setContentView(R.layout.second);
  19. Button btn2 = (Button) findViewById(R.id.button2);
  20. btn2.setOnClickListener(new Button.OnClickListener() {
  21. public void onClick(View v) {
  22. Button2();
  23. }
  24. });
  25. }
  26. public void Button2() {
  27. setContentView(R.layout.main);
  28. Button b1 = (Button) findViewById(R.id.button1);
  29. b1.setOnClickListener(new Button.OnClickListener() {
  30. public void onClick(View v) {
  31. Button1();
  32. }
  33. });
  34. }
  35. }

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. @Override
  12. public void onClick(View v) {
  13. //創建啟動的Activity對應的Intent
  14. Intent intent =new Intent(ActivityTestActivity.this,SecondActivity.class);
  15. //動intent對應的Activity
  16. startActivity(intent);
  17. }
  18. });
  19. }

第二個Activity:

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