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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章