一、综述
觉得有必要把之前学过的android知识重新复习一下,都快忘得差不多了。
将以程序和代码为主,以知识点的形式写的Demo。知识点将在标题写出,方便查找。
二、程序代码
主Activity
01.//ActivityMain.java
02.
03.package com.fsy;
04.
05.import android.app.Activity;
06.import android.content.Intent;
07.import android.os.Bundle;
08.import android.view.Menu;
09.import android.view.MenuItem;
10.import android.view.View;
11.import android.view.View.OnClickListener;
12.import android.widget.Button;
13.
14./**
15. * 关于Activity生命周期的文档很详细,不清楚了就查
16. * 多个Activity会被放入栈式结构task中,手机显示栈中最顶部的元素
17. * 只要没销毁就会在栈中等待出栈
18. * 只要启动一个新的Activity就会调用OnPause()方法
19. * 第二个Activity如果把第一个Activity完全遮挡住了就会调用OnStop()方法。没有则不会调用
20. * 对话框风格的Activity在Manifest.xml中加入一个Activity属性即可
21. * android:theme="@android:style/Theme.Dialog"
22. * Menu的创建重写onCreateOptionsMenu,响应要重写onOptionsItemSelected
23. * @author fsy
24. *
25. */
26.
27.public class ActivityMain extends Activity {
28.
29. public static final int MENU_1 = 0;
30. public static final int MENU_2 = 1;
31. public static final int MENU_EXIT = 2;
32.
33. public boolean onCreateOptionsMenu(Menu menu) {
34. menu.add(0, MENU_1, 1, "1");
35. menu.add(0, MENU_2, 3, "2");
36. menu.add(2, MENU_EXIT, 2, "EXIT");
37.
38. return super.onCreateOptionsMenu(menu);
39. }
40.
41.
42. @Override
43. public boolean onOptionsItemSelected(MenuItem item) {
44. if(item.getItemId() == MENU_EXIT){
45. finish();
46. }
47. return super.onOptionsItemSelected(item);
48. }
49.
50.
51. /** Called when the activity is first created. */
52. Button b;
53. @Override
54. public void onCreate(Bundle savedInstanceState) {
55. super.onCreate(savedInstanceState);
56. setContentView(R.layout.main);
57. b = (Button)findViewById(R.id.button1);
58. b.setOnClickListener(new OnClickListener(){
59. @Override
60. public void onClick(View v) {
61. //Activity2为对话框风格,不会完全遮挡屏幕,所以在子进程初始化后不会再调用OnStop()
62. Intent t = new Intent();
63. t.setClass(ActivityMain.this, Activity2.class);
64. ActivityMain.this.startActivity(t);
65. }});
66. }
67.}
//ActivityMain.java
package com.fsy;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* 关于Activity生命周期的文档很详细,不清楚了就查
* 多个Activity会被放入栈式结构task中,手机显示栈中最顶部的元素
* 只要没销毁就会在栈中等待出栈
* 只要启动一个新的Activity就会调用OnPause()方法
* 第二个Activity如果把第一个Activity完全遮挡住了就会调用OnStop()方法。没有则不会调用
* 对话框风格的Activity在Manifest.xml中加入一个Activity属性即可
* android:theme="@android:style/Theme.Dialog"
* Menu的创建重写onCreateOptionsMenu,响应要重写onOptionsItemSelected
* @author fsy
*
*/
public class ActivityMain extends Activity {
public static final int MENU_1 = 0;
public static final int MENU_2 = 1;
public static final int MENU_EXIT = 2;
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MENU_1, 1, "1");
menu.add(0, MENU_2, 3, "2");
menu.add(2, MENU_EXIT, 2, "EXIT");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == MENU_EXIT){
finish();
}
return super.onOptionsItemSelected(item);
}
/** Called when the activity is first created. */
Button b;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b = (Button)findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//Activity2为对话框风格,不会完全遮挡屏幕,所以在子进程初始化后不会再调用OnStop()
Intent t = new Intent();
t.setClass(ActivityMain.this, Activity2.class);
ActivityMain.this.startActivity(t);
}});
}
}
对话框Activity
[java] view plaincopyprint?
01.//Activity2.java
02.
03.package com.fsy;
04.
05.import android.app.Activity;
06.import android.os.Bundle;
07.import android.view.View;
08.import android.view.View.OnClickListener;
09.import android.widget.Button;
10.
11.public class Activity2 extends Activity{
12. /** Called when the activity is first created. */
13. Button b;
14. @Override
15. public void onCreate(Bundle savedInstanceState) {
16. super.onCreate(savedInstanceState);
17. setContentView(R.layout.mgs);
18. b= (Button)findViewById(R.id.button2);
19. b.setOnClickListener(new OnClickListener(){
20. @Override
21. public void onClick(View v) {
22. finish(); //结束Activity。调用其OnDestroy()方法
23. }});
24. }
25.}
主Activity的xml
01.//main.xml
02.
03.<?xml version="1.0" encoding="utf-8"?>
04.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
05. android:orientation="vertical"
06. android:layout_width="fill_parent"
07. android:layout_height="fill_parent"
08. >
09. <Button android:text="开始进程"
10. android:id="@+id/button1"
11. android:layout_height="wrap_content"
12. android:layout_width="fill_parent"></Button>
13.</LinearLayout>
对话框Activity的xml
01.//mgs.xml
02.
03.<?xml version="1.0" encoding="utf-8"?>
04.<LinearLayout
05. xmlns:android="http://schemas.android.com/apk/res/android"
06. android:layout_width="match_parent"
07. android:layout_height="match_parent" android:orientation="vertical">
08. <TextView android:id="@+id/textView1"
09. android:layout_height="wrap_content"
10. android:text="点我返回"
11. android:layout_width="fill_parent">
12. </TextView>
13.
14. <Button android:layout_height="wrap_content"
15. android:id="@+id/button2"
16. android:text="返回"
17. android:layout_width="fill_parent">
18. </Button>
19.</LinearLayout>
Manifest
01.AndroidManifest.xml
02.
03.<?xml version="1.0" encoding="utf-8"?>
04.<manifest xmlns:android="http://schemas.android.com/apk/res/android"
05. package="com.fsy"
06. android:versionCode="1"
07. android:versionName="1.0">
08.
09.
10. <application android:icon="@drawable/icon" android:label="@string/app_name">
11. <activity android:name=".ActivityMain"
12. android:label="@string/app_name">
13. <intent-filter>
14. <action android:name="android.intent.action.MAIN" />
15. <category android:name="android.intent.category.LAUNCHER" />
16. </intent-filter>
17. </activity>
18. <activity android:name="Activity2"
19. android:theme="@android:style/Theme.Dialog"> //设置对话框风格的activity
20. </activity>
21.
22. </application>
23.</manifest>
转载:点击打开链接