Android Activity活动探究

Activity是用户可以看得到的界面,在第一个Android项目初学者之Android HelloWorld项目中,我们使用ADT自动生成的活动,本篇我们介绍手动生成活动。

1、手动创建Activity

(1)新建项目

新建项目TestActivity,过程与第一个项目一样,只是在下图步骤中,不要选择 Create Activity,如下:

直接点击finish结束。

(2)新建活动类MyActivity

在src目录下,新建package:com.yy.testActivity,在该包下,新建类MyActivity,使之继承Activity(因为Activity是所有活动的基类)。同时重写onCreate方法,如下:

package com.yy.testactivity;

import android.app.Activity;
import android.os.Bundle;

/**
 * 手动创建活动
 * @author yy
 *
 */
public class MyActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	}
}
(3)新建布局文件

为了能够看到activity界面,我们需要创建一个布局文件,在文章Android 开发目录结构中,介绍了资源文件放在res下,并且不同的资源放在不同的文件夹下,布局文件放在layout目录下,因此在该目录下,新建 Android XML Flle:activity_my.xml,如下:

点击Finish,看到如下配置内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    

</LinearLayout>
activity_my.xml有两种视图:用户界面视图、代码视图,我们可以在该布局文件中,添加一个按钮:可以在用户界面中拖拽一个Button,生成代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="myButton" />

</LinearLayout>
其中android:id 表示定义按钮的id标识,layout_width标识宽度,match_parent表示与父元素同等宽度,layout_height表示高度,wrap_content表示能够包含里面的内容即可。text是显示内容。

(4)加载自定义布局

当定义完布局文件后,需要在活动中进行加载,否则在模拟器中是看不到的,加载很简单,在onCreate方法中添加如下代码:

package com.yy.testactivity;
import android.app.Activity;
import android.os.Bundle;

/**
 * 手动创建活动
 * @author yy
 *
 */
public class MyActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		//加载自定义布局文件:R是com.example.testactivity.R
		setContentView(R.layout.activity_my);
	}
}
(5)注册活动

所有的活动需要在AndroidManifest.xml中进行注册才能生效,如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.yy.testactivity"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <!-- register activity -->
        <activity
            android:name=".MyActivity"
            android:label="This is MyAcitivity Label" >
           <intent-filter>
              <action android:name="android.intent.action.MAIN" />

              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
        </activity>
    </application>

</manifest>
其中在manifest标签中定义了package:com.yy.testactivity。活动的注册是在application中,使用activity标签。其中android:name指定具体活动,这里直接是.MyAcitity或者com.yy.testactivity.MyActivity。android:lable指定活动中标题栏的内容。

(6)效果展示

2、隐藏标题栏

在上图的展示中,看到标题栏占据了屏幕的一部分,可以选择隐藏,修改代码如下:

打开活动类MyActivy,在onCreate方法中作如下修改:

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//隐藏标题栏
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		//加载自定义布局文件:R是com.example.testactivity.R
		setContentView(R.layout.activity_my);
	}
再次查看效果,如下:

                                                       

3、Toast的使用

在活动中可以使用Toast将一些信息通知给用户,这些信息显示时间短。我们可以为布局文件中的Button添加点击事件,当点击时,给用户提示响应信息。在活动类MyActivity.java中,依次进行如下修改操作:

(1)获取Button

获取Button View对象,我们通过findViewById方法。

//获取View--Button
		Button button1 = (Button) findViewById(R.id.button1);
(2)添加点击事件

当获取Button对象后,我们可以为其添加点击事件,使用Listener对点击事件进行监听。

//监听点击事件
		button1.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View view) {
				//使用Toast提示用户信息
				Toast.makeText(getApplicationContext(), "你点击了我,请一笑而过!", Toast.LENGTH_SHORT)
						.show();
			}
		});
Toast的makeText方法有三个参数:第一个是上下文、第二个为提示的信息、第三个为显示事件长短(LENGTH_SHORT、LENGTH_LONG)。

(3)效果展示

上述操作完毕后,完整代码如下:

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//隐藏标题栏
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		//加载自定义布局文件:R是com.example.testactivity.R
		setContentView(R.layout.activity_my);
		
		//获取View--Button
		Button button1 = (Button) findViewById(R.id.button1);
		
		//监听点击事件
		button1.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View view) {
				//使用Toast提示用户信息
				Toast.makeText(getApplicationContext(), "你点击了我,请一笑而过!", Toast.LENGTH_SHORT)
						.show();
			}
		});
	}

4、活动中使用Menu

(1)新建menu文件

在res目录下,新建menu文件夹,然后在menu目录下,新建Android XML File:menu_my.xml,如下图:

menu_my.xml中,添加如下代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/add_item"
        android:title="Add">
    </item>
     <item
        android:id="@+id/modify_item"
        android:title="Modify">
    </item>
     <item
        android:id="@+id/delete_item"
        android:title="Delete">
    </item>
     <item
        android:id="@+id/search_item"
        android:title="Search">
    </item>

</menu>
即增加了四个item:Add、Modify、Delete、Search。
(2)重写onCreateOptionsMenu方法

打开MyActivity.java活动类,重写方法onCreateOptionsMenu方法,如下:

@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		//添加自定义菜单
		getMenuInflater().inflate(R.menu.menu_my, menu);
		return super.onCreateOptionsMenu(menu);
	}
其中inflate方法有两个参数:第一个要加载的菜单文件、第二个表示第一个参数的菜单要加载到哪个menu当中去。
(3)查看效果

重新发布,在模拟器中,我们点击MENU按钮,会看到如下界面:

4)添加菜单响应事件

打开活动类MyActivity.java,重写菜单的选择方法,如下:

/**
	 * 添加菜单响应事件
	 */
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		
		//获取菜单id
		int itemId = item.getItemId();
		switch(itemId){
			case R.id.add_item:
				Toast.makeText(getApplicationContext(), "你点击了 Add Item", Toast.LENGTH_SHORT)
					.show();
				break;
			case R.id.modify_item:
				Toast.makeText(getApplicationContext(), "你点击了 Modify Item", Toast.LENGTH_SHORT)
					.show();
				break;
			case R.id.delete_item:
				Toast.makeText(getApplicationContext(), "你点击了 Delete Item", Toast.LENGTH_SHORT)
					.show();
				break;
			case R.id.search_item:
				Toast.makeText(getApplicationContext(), "你点击了 Search Item", Toast.LENGTH_SHORT)
					.show();
				break;
			default:
		}
		return super.onOptionsItemSelected(item);
	}
(5)查看效果

5、销毁一个活动

如何销毁当前活动,Activity类提供了一个方法:finish( ),我们继续修改上述代码,当点击按钮Button时,销毁当前活动,如下:

(1)修改onCreate方法

		//监听点击事件
		button1.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View view) {
				//使用Toast提示用户信息
				/*Toast.makeText(getApplicationContext(), "你点击了我,请一笑而过!", Toast.LENGTH_SHORT)
						.show();*/
				//销毁当前活动
				finish();
			}
		});

(2)查看效果

当点击按钮后,当前应用程序会退场,表示当前活动已销毁。


总结:本文介绍了活动Activity的手动创建、自定义布局以及在活动中的加载、活动的注册、标题栏的显示与隐藏、

Toast的使用、活动中使用Menu以及活动的销毁等内容。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值