Layout的編寫
標題:Layout專案的完成
- 使用 Android Studio 建立一個新專案, 選擇如圖所示
- 選擇一個空的頁面
3.一直選擇next
4.在Layout的Activity_main.xml 裡進行修改
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
</androidx.constraintlayout.widget.ConstraintLayout>
5.新增 Activity_information.xml 在Layout中。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".LoginActivity">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/default_icon"/>
<TextView
android:layout_width="match_parent"
android:layout_height="30sp"
android:text="使用者名稱"
android:textSize="20sp"
android:gravity="center"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="40dp"
android:orientation="horizontal">
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="姓名:"
android:textSize="30sp" />
<EditText
android:id="@+id/et_realname"
android:layout_width="250dp"
android:layout_height="match_parent"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="40dp"
android:orientation="horizontal">
<TextView
android:id="@+id/group_sex"
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="性別:"
android:textSize="30sp"/>
<RadioGroup
android:id="@+id/sex"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/nan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男"
android:textSize="20sp"
android:checked="true"/>
<RadioButton
android:id="@+id/nv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"
android:textSize="20sp"
android:checked="true"/>
</RadioGroup>
</LinearLayout>
<TextView
android:id="@+id/zyk"
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="喜歡的專業課:"
android:textSize="30sp"/>
<CheckBox
android:id="@+id/java"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Java物件導向"
android:textSize="18sp"/>
<CheckBox
android:id="@+id/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Android專案開發"
android:textSize="18sp"/>
<CheckBox
android:id="@+id/sjk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="資料庫管理"
android:textSize="18sp"/>
<Button
android:id="@+id/btn_confirm"
android:text="確認"
android:textSize="20sp"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_weight="0"
android:background="#fff000"/>
</LinearLayout>
6.在Layout中新增Activity_login.xml檔案。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".LoginActivity">
<ImageView
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="248dp"
android:src="@drawable/default_icon"
android:layout_margin="20dp"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/et_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/login_user_name_bg"
android:drawableLeft="@drawable/user_name_icon"
android:hint="請輸入使用者名稱"
app:layout_constraintBottom_toTopOf="@id/et_password"
android:layout_marginRight="40dp"
android:layout_marginLeft="20dp"/>
<EditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/login_user_name_bg"
android:drawableLeft="@drawable/psw_icon"
android:hint="請輸入密碼"
android:inputType="textPassword"
app:layout_constraintBottom_toBottomOf="@id/et_name"
android:layout_marginRight="40dp"
android:layout_marginLeft="20dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<CheckBox
android:id="@+id/auto_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="自動登入"
android:textSize="18sp"
android:layout_marginLeft="15dp"/>
<Button
android:id="@+id/btn_login1"
android:text="登入"
android:textSize="20sp"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_weight="0"
android:background="#fff000"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/n_register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="立即註冊"
android:textSize="13sp"
android:background="@drawable/abc_vector_test"/>
<Button
android:id="@+id/n_mv"
android:text="找回密碼?"
android:textSize="13sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/abc_vector_test"/>
</LinearLayout>
</LinearLayout>
7.在src的java中的MainActivity 進行修改。
package com.example.layout;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
8.繼續新增InformationActivity檔案。
package com.example.layout;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class InformationActivity extends AppCompatActivity implements View.OnClickListener {
private TextView tvUsername;
private EditText etRealname;
private RadioGroup sexGroup;
private CheckBox cbJava,cbAndroid,cbDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_information);
//初始化介面控制元件
//1.獲取控制元件物件
tvUsername=findViewById(R.id.name);
etRealname=findViewById(R.id.et_realname);
sexGroup=findViewById(R.id.sex);
cbJava=findViewById(R.id.java);
cbAndroid=findViewById(R.id.android);
cbDatabase=findViewById(R.id.sjk);
//獲取登入介面傳遞的資料
Intent intent=getIntent();
if(intent!=null){
String name=intent.getStringExtra("username");
tvUsername.setText(name);
}
//2.設定點選事件、鍵盤事件的監聽器
Button btnConfirm=findViewById(R.id.btn_confirm);
btnConfirm.setOnClickListener(this);
}
//4.處理點選時間的邏輯
@Override
public void onClick(View view) {
if(view.getId()==R.id.btn_confirm){
getInfo();
}
}
private void getInfo(){
//1.獲取控制元件的值
String username=tvUsername.getText().toString().trim();
String realname=tvUsername.getText().toString().trim();
String sex="男";
String favourite="";
//獲取選擇的RadioButton的id
int id=sexGroup.getCheckedRadioButtonId();
if(id==R.id.nan){
sex="男";
}else {
sex="女";
}
if(cbJava.isChecked()){
favourite+=cbJava.getText().toString()+" ,";
}
if(cbAndroid.isChecked()){
favourite+=cbAndroid.getText().toString()+" ,";
}
if(cbDatabase.isChecked()){
favourite+=cbDatabase.getText().toString()+" ,";
}
//2.顯示或傳遞內容
String info="使用者名稱"+username+"姓名"+realname+"\n性別:"+sex+"\n喜歡的課程:"+favourite.trim().substring(0,favourite.trim().length()-1);
Toast.makeText(InformationActivity.this,info,Toast.LENGTH_LONG).show();
}
}
9.繼續新增 LoginActivity 檔案。
package com.example.layout;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class LoginActivity extends AppCompatActivity {
private EditText etUsername;
private EditText etPassword;
private CheckBox cbAutoLogin;
private Button btnLogin;
private boolean isAutoLogin = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
initView();
}
private void initView() {
//1.獲取login上的元件
etUsername = findViewById(R.id.et_name);
etPassword = findViewById(R.id.et_password);
cbAutoLogin = findViewById(R.id.auto_login);
btnLogin = findViewById(R.id.btn_login1);
if (cbAutoLogin.isChecked()) {
isAutoLogin = true;
}
//2.設定button監聽
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//3.監聽處理邏輯
//3.1獲取輸入的使用者名稱密碼
if (view.getId() == R.id.btn_login1) {
login();
}
}
private void login() {
String username = etUsername.getText().toString().trim();
String password = etPassword.getText().toString();
if ("android".equals(username) && "123456".equals(password)) {
Toast.makeText(LoginActivity.this, "登入成功",
Toast.LENGTH_LONG).show();
Intent intent = new Intent(LoginActivity.this, InformationActivity.class);
intent.putExtra("username", username);
startActivity(intent);
} else {
Toast.makeText(LoginActivity.this, "使用者名稱或密碼不正確",
Toast.LENGTH_LONG).show();
}
}
});
}
}
10.分別在res 的drawable中新增circle_shape.xml,circle_stroke.xml檔案,並且新增一些圖片。
11.最後點選Debug執行。
相關文章
- MarkDown文件的編寫
- HTML Email的編寫HTMLAI
- layout佈局
- Coordinator Layout使用
- 配置檔案的編寫
- 編寫自己的 TypeScript CLITypeScript
- 仿照 geeorm 編寫的 sormORM
- shellcode編寫
- Dockerfile編寫Docker
- 文件編寫
- 編寫DockerFileDocker
- Flutter layout 作弊稿Flutter
- Windows 專案的 CMakeLists 編寫Windows
- PHP 編寫基本的 Socket 程式PHP
- 如何編寫優雅的DockerfileDocker
- 編寫高效能的JavaScriptJavaScript
- 【譯】如何更好的編寫CSSCSS
- 編寫可維護的JSJS
- 編寫更快的選擇器
- 進擊的佈局之Grid Layout
- vscode編寫markdownVSCode
- 如何編寫DockerfileDocker
- Java程式編寫Java
- markdown文件編寫
- Yii2 layout 由 controller 向layout中傳遞引數值Controller
- python編碼規範以及推導式的編寫Python
- UltraEdit文字編輯器編寫強大的宏教程
- Docker的基本使用及DockerFile的編寫Docker
- workist - node編寫的小巧的效率工具
- Sublime 編寫編譯 swift程式碼編譯Swift
- 使用JavaScript編寫的爬蟲程式JavaScript爬蟲
- 用Python編寫自己的微型RedisPythonRedis
- 如何編寫高效的 Shell 指令碼指令碼
- sql devloper 用法的和SQL 編寫SQLdev
- Rails並不是用Ruby編寫的AI
- 編寫你自己的Python模組Python
- RPM 的 spec 檔案如何編寫
- 如何編寫 RPM 的 spec 檔案