android基础知识复习(一)——对话框风格的Activity、Menu、Activity生命周期

一、综述

觉得有必要把之前学过的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>  


转载:点击打开链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值