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

来源:互联网 发布:手机淘宝没有收藏按钮 编辑:程序博客网 时间:2024/05/18 05:46
<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();
     }
});
当点击按钮时,当前活动销毁。

 

 

0 0