Unit2 Activities

本文详细介绍了Android应用开发的基础,包括如何创建Activity、加载布局、在AndroidManifest中注册、使用Toast提示用户和处理Menu,以及Activity间显式Intent的使用和Activity的销毁。
摘要由CSDN通过智能技术生成

Unit2 Activities

2.1 活动的基本用法

2.1.1 活动的创建

项目中的任何Activity都应该重写onCreate()方法,而目前FirstActivity中已经重写了这个方法,这是Android Studio自动帮我们完成的,代码如下所示:

public class FirstActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}

2.1.2 创建和加载布局

Android程序的设计讲究逻辑和视图分离,最好每一个Activity都能对应一个布局。

右击app/src/main/res/layout→New→Directory,可以创建一个布局文件。布局文件中是使用XML来进行界面编辑的,这里创建一个first_layout.xml文件,并编写如下代码:

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

    <Button
        android:id="@+id/button_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button 1"
        />
</LinearLayout>

回到FirstActivity,在onCreate()方法中加入如下代码即可给当前的Activity加载一个布局。

public class FirstActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_layout);  // 添加的语句
    }

2.1.3 在AndroidManifest文件中注册

所有的Activity都要在AndroidManifest.xml中进行注册才能生效。Activity的注册声明要放在 标签内,并通过 标签来对Activity进行注册。

还可以通过在 标签的内部加入 标签来配置主Activity。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:dist="http://schemas.android.com/apk/distribution"
    package="com.example.myapplication">
    <application
        ...>
        <activity android:name=".FirstActivity"
            android:label="This is FirstActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

2.1.4 在活动中使用 Toast

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

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first_layout);
        Button button_1 = (Button) findViewById(R.id.button_1);
        button_1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(FirstActivity.this, "You clicked Button 1",
                        Toast.LENGTH_LONG).show();
            }
        });
    }

findViewById() 方法可以获取在布局文件(app/src/main/res/layout/first_layout)中定义的元素

Button 使得 findViewById() 返回的 View 对象向下转型为 Button 对象。

通过调用 setOnlickListener() 方法为按钮设置一个监听器,点击按钮时就会执行监听器中的 onClick() 方法。同时,弹出 Toast 的功能也应该在 onClick() 方法中编写。

Toast 的编写:通过静态方法 makeText() 创建一个 Toast 对象,然后调用 show() 将 Toast 显示出来。

makeText()方法需要传入3个参数:
第一个参数是Context,也就是Toast要求的上下文(由于活动本身就是-一个 Context对象,因此这里直接传入FirstActivity.this即可)。
第二个参数是Toast显示的文本内容。
第三个参数是Toast显示的时长,有两个内置常量可以选择Toast . LENGTH_ SHORT 和Toast . LENGTH_ LONG。

2.1.5 在活动中使用 Menu

Menu提供了一种机制,可以让界面中的菜单项在默认情况下不显示。
只有当用户主动点击了菜单按钮时,才会弹出里面具体的内容,因此它不会占用任何Activity的空间。

<item
        android:id="@+id/add_item"
        android:title="Add"/>
    <item
        android:id="@+id/remove_item"
        android:title="Remove"/>   //  app\src\main\res\menu\main.xml
@Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()){
            case R.id.add_item:
                Toast.makeText(this, "You clicked Add.", Toast.LENGTH_SHORT).show();
                break;
            case R.id.remove_item:
                Toast.makeText(this, "You clicked Remove.", Toast.LENGTH_SHORT).show();
                break;
            default:
        }
        return true;
    }   //  app\src\main\java\com\example\myapplication\FirstActivity.java

2.1.6 销毁一个活动

通常情况下只要按一下手机的Back键就可以销毁当前的Activity了。
不过,如果你不想通过按键的方式,而是希望在程序中通过代码来销毁Activity,当然也可以。
Activity类提供了一个finish()方法,只需要调用一下这个方法就可以销毁当前的Activity了。

finish();

2.2 使用 Intent 在活动之间穿梭

2.2.1 使用显式 Intent

Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。
显式Intent可以用于明确指定启动某个Activity,如下所示:

button_1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
                startActivity(intent);

这段代码就表示,将会从FirstActivity跳转到SecondActivity。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值