Android——《第一行代码》之Activity

理解Android Activity:注册、标题栏与Toast使用
本文介绍了Android中Activity的基本概念,包括如何在Manifest中注册Activity,使用android:name指定活动,以及android:label设置标题栏内容。同时,讨论了主活动的声明以及未声明主活动的情况。还详细讲解了如何隐藏标题栏,以及在Activity中使用Toast进行提示的步骤和注意事项,包括Toast的显示时长设置。
<pre name="code" class="html"><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test" > 
	<application android:allowBackup="true" 
		android:icon="@mipmap/ic_launcher" 
		android:label="@string/app_name" android:supportsRtl="true" 
		android:theme="@style/AppTheme" > 
		<activity android:screenOrientation="portrait" 
					android:name=".MainActivity" 
					android:label="@string/app_name" > 				
			<intent-filter>														
				<action android:name="android.intent.action.MAIN" /> 									
				<category android:name="android.intent.category.LAUNCHER" />								
			</intent-filter> 
		</activity>
		<activity android:screenOrientation="portrait" 
					android:name=".AddContent" 
					android:label="@string/title_activity_add_content" > 
		</activity>
 	</application> 
</manifest>


Activity主要用来与用户交互。

分析以上代码得到:

1.活动的注册声明是放在<application>标签中的,通过<activity>标签来对活动进行注册。

2.我们要使用android:name来指定注册的是哪个activity,这里的“.MainActivity”是什么意思呢?只不过是com.example.test.MainActivity的缩写而已。由于最外层的manifest标签中已经通过package属性指定了包名,所以在注册活动时就可以省略了。

3.android:label指定活动中标题栏的内容,标题栏是显示在活动最顶部的。需注意,给主活动指定的label不仅会成为标题栏中的内容,也会成为启动器中应用程序显示的名称。

4.<intent-filter>标签表示此活动是主活动,即点击桌面的应,用程序首先打开的就是这个活动。需要注意的是,如果你的应用程序中没有声明任何一个活动作为主活动,那么这个程序仍然可以正常安装,只是在桌面无法打开,这种程序一般供其他的应用在内部进行调用,如支付宝快捷支付服务。

隐藏标题栏的做法:

在onCreate()方法中添加如下代码:requestWindowFeature(Window.FEATURE_NO_TITLE);

切记,一定要加在setContentView()之前,不然会报错哦。

在活动中使用Toast

Toast是Android系统提供的一种特别好的提醒方式,在程序中可以使用它将一些短小的信息通知给客户,这些信息在一段时间后就会自动消失,并且不会占用屏幕空间,

Toast.makeText(MainActivity.this,"You clicked it!",Toast.LENGTH_SHORT).show();

在Android源码中的NotificationManagerService.java这个类中定义了两个静态变量,分别对应Toast.LENGTH_LONG(3.5s)和Toast.LENGTH_SHORT(2s)的值

Toast..makeText(Context context,CharSequence text, int duration).show() 中的duration只能设这两个值,其他值是没有用处的。

    在NotificationManagerService.java的scheduleTimeoutLocked()

private void scheduleTimeoutLocked(ToastRecord r) {
        mHandler.removeCallbacksAndMessages(r); 
        Message m = Message.obtain(mHandler, MESSAGE_TIMEOUT, r); 
        long delay = r.duration == Toast.LENGTH_LONG ?LONG_DELAY : SHORT_DELAY; 
        mHandler.sendMessageDelayed(m, delay); 
 } 
static final int LONG_DELAY = 3500; // 3.5 seconds 
static final int SHORT_DELAY = 2000; // 2 seconds<pre name="code" class="java">Toast.LENGTH_LONG=1;

在活动中使用menu
manu中的代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"     tools:context=".MainActivity">    <item android:id="@+id/add_item"         android:title="Add"/>
    <item android:id="@+id/remove_item"
      android:title="Remove"/></menu>
重写onCreateOptionsMenu()方法
public boolean onCreateOptionsMenu(Menu menu){
	getMenuInflater().inflate(R.menu.main,menu);
	return true;
}

只有按下Menu键的时候,菜单会显示出来。
销毁一个活动:只要按下Back键就可以销毁当前的活动。也可以通过代码的方式,如:
button1.setOnClickListener(new OnClickListener() {
     public void onClick(View v){
          finish();
     }
});
当点击按钮时,当前活动销毁。

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值