Android开发系列_手把手开发APP_005_一个简单的登录案例

项目结构

java

在这里插入图片描述
分别有两个Activity。
一个是登录界面的,
另一个是登录成功后的。

package com.example.reborn.login;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.content.Intent;
public class LoginMainActivity extends AppCompatActivity {
//onCreate方法是回调方法。对应的声明周期。
//(onCreate和onDestroy方法:)[https://blog.csdn.net/qq_40967402/article/details/82975729]
//(onStart和onStop方法:)[https://blog.csdn.net/qq_40967402/article/details/83244665]
//关于这几个方法的详细实例,请看下一讲,细说Activity生命周期。
//在初始化完实例之后,我希望可以显示login_main这个布局。
//这个布局在res/layout/login_main.xml
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //此时,Android会解析login_main.xml进行渲染界面。
        setContentView(R.layout.login_main);
    }
    //这个也是一个回调方法。当点击Button时调用。
    //在对应的login_main.xml的Button按钮中声明。
    //如果我们把LoginMainActivity和login_main.xml看做一个东西
    //此时的clickButton希望使用这个环境变量。因此加入了View对象。
    public void clickButton(View view){
    //显示意图,由LoginMainActivity传入SuccessMainActivity这个类。
    //因为startActivity只用一个参数,所以不希望从SuccessMainActivity中返回数据。
    //从这里我们知道即将登场的类是SuccessMainActivity
        Intent intent = new Intent(LoginMainActivity.this, SuccessMainActivity.class);
        startActivity(intent);
    }
}

在这里插入图片描述

login_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/login_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/x10"
    android:paddingLeft="@dimen/x10"
    android:paddingRight="@dimen/x10"
    android:paddingTop="@dimen/x10"
    tools:context=".LoginMainActivity">
    <TextView
        android:id="@+id/usm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="账号" />
    <EditText
        android:id="@+id/username"
        android:layout_width="320dp"
        android:layout_height="48dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="48dp"
        android:paddingLeft="8dp" />
    <TextView
        android:id="@+id/pwd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="密码" />
    <EditText
        android:id="@+id/password"
        android:layout_width="320dp"
        android:layout_height="48dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="16dp"
        android:paddingLeft="8dp" />
    <Button
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="clickButton"
        android:text="登录" />
</LinearLayout>

wrap_content指,控件有多大,就显示多大。
layout_gravity="center_horizontal",如果去掉,就会:
在这里插入图片描述
id规定了java类访问改控件的名称。
如上文Activiy:
R.layout.login_main
若想获得Button:
R.layout.login
则会在res/layout下面找资源。

下面演示第二个Activity:
之前:先看看清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.reborn.login">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".LoginMainActivity"
            android:label="Login">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".SuccessMainActivity"></activity>
    </application>
</manifest>

显然,主Activity是LoginMainActivity

package com.example.reborn.login;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class SuccessMainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_success_main);
    }
}

对应的布局文件:activity_success_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SuccessMainActivity">
<TextView
    android:id="@+id/Success"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="Success!"
    tools:ignore="MissingConstraints" />
</android.support.constraint.ConstraintLayout>

什么是约束布局
结果图片在这里:
在这里插入图片描述

这样,一个简单的无功能登录界面就完成了!!!
本文代码来自于github.

发布了174 篇原创文章 · 获赞 28 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/u010563350/article/details/104506886