编程地带

Activity基础

2019-06-22  本文已影响2人  MA木易YA

Activity是一个应用程序的组件,他在屏幕上提供了一个区域,允许用户在上面做一些交互性的操作, 比如打电话,照相,发送邮件,或者显示一个地图!Activity可以理解成一个绘制用户界面的窗口, 而这个窗口可以填满整个屏幕,也可能比屏幕小或者浮动在其他窗口的上方!

image.png

创建Activity

1. 创建继承自Activity的Activity

public class MainActivity extends Activity

2. 重写需要的回调方法

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

3. 设置需要显示的视图

setContentView(R.layout.activity_main);

配置Activity

    手动创建的Activity并不能直接使用,还需要在AndroidManifest.xml中对Activity进行注册

    配置文件中会有一项对包(package)的定义,之后的路径都是基于这个包的路径使用相对或者绝对路径

package="com.example.asus.layout">

    一般只需要定义Activity的路径,额外的你可以自定义一个标签或者为Activity定义启动项

<activity android:name=".MainActivity"
            android:label="主函数"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

启动Activity

I. 入口Activity

在AndroidManifest.xml中添加intent标签(如上所示),则表示将Activity定义为主启动项,程序启动时会自动将此Activity作为入口启动

II. 其他Activity
1) 创建intent对象

Intent intent = new Intent(MainActivity.this, NewActivity.class);

2)通过startActivity启动

startActivity(intent); //启动Activity

关闭Activity

    在新打开的Activity中调用finish()方法即可回到原Activity,如果调用finish()的Activity不是主活动则返回到上一级Activity,否则直接回到主屏幕

刷新屏幕

onCreate(null)

实例 - 喜马拉雅忘记密码页面跳转

xml(忘记密码)

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/biaoge"
    android:stretchColumns="0,3">

    <!--第一行-->
    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="200dp"
        >
        <TextView />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:text="账 号:"
            android:gravity="center_horizontal"
            />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="邮箱或者手机号"
            />
        <TextView />
    </TableRow>
    <!--第二行-->
    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="20dp"
        >
        <TextView />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:text="密 码:"
            android:gravity="center_horizontal"
            />
        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="输入6-16位数字或字母"
            />
        <TextView />
    </TableRow>
    <!--第三行-->
    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TextView />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="注 册"
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#FF8247"
            android:text="登 录"/>
        <TextView />
    </TableRow>
    <!--第四行-->
    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="20dp"
        >
        <TextView />
        <TextView />
        <TextView
            android:id="@+id/wang_mima"
            android:text="忘记密码?"
            android:textColor="#FF4500"
            android:gravity="right"
            />
        <TextView />
    </TableRow>



</TableLayout>

image.png

xml(更改密码)

<?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"
    android:background="@drawable/beijing"
    android:padding="5dp">

    <ImageButton
        android:id="@+id/close"
        android:layout_width="15dp"
        android:layout_height="15dp"
        android:src="@drawable/guanbi"
        android:background="#0000"
        android:layout_marginTop="15dp"
        android:scaleType="fitXY"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:layout_gravity="center"
        android:layout_marginLeft="10dp"
        android:text="你的邮箱或手机号"/>
    <EditText
        android:layout_width="200dp"
        android:layout_gravity="center"
        android:layout_height="wrap_content"
        android:hint="请输入邮箱或手机号"/>
    <Button
        android:layout_width="200dp"
        android:layout_height="50dp"
        android:background="#FF8247"
        android:layout_gravity="center"
        android:text="提交"/>

</LinearLayout>

image.png

Activity(点击忘记密码跳转到更改密码页面)

package com.example.asus.layout;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;


import android.widget.TabHost;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private TabHost tabHost;//声明TabHost组件的对象


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);
        TextView password = (TextView) findViewById(R.id.wang_mima);   //获取布局文件中的忘记密码
        password.setOnClickListener(new View.OnClickListener() { //为忘记密码创建单击监听事件
            @Override
            public void onClick(View v) {
                //创建Intent对象
                Intent intent = new Intent(MainActivity.this, PasswordActivity.class);
                startActivity(intent); //启动Activity
            }
        });

    }
}

Activity(点击关闭“×”返回上级)

package com.example.asus.layout;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;

public class PasswordActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_password);

        ImageButton close = (ImageButton) findViewById(R.id.close); //获取布局文件中的关闭按钮
        close.setOnClickListener(new View.OnClickListener() {  //为关闭按钮创建监听事件
            @Override
            public void onClick(View v)  {
                finish(); //关闭当前Activity
            }
        });
    }
}

上一篇 下一篇

猜你喜欢

热点阅读