安卓第二天跳轉(帶返回結果)+模擬登陸
先上佈局程式碼:
主介面:main_activity.xml
<com.example.autum.layotdemo.customview.CircleImageView android:id="@+id/head_pic" android:layout_width="150px" android:layout_height="150px" android:layout_centerHorizontal="true" android:layout_marginTop="90dp" android:src="@mipmap/head" /> <TextView android:id="@+id/user_name_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/head_pic" android:layout_alignBottom="@id/user_name" android:layout_marginTop="15dp" android:layout_toLeftOf="@id/user_name" android:gravity="center_vertical" android:text="User Name:" /> <EditText android:id="@+id/user_name" android:layout_width="110dp" android:layout_height="wrap_content" android:layout_below="@+id/head_pic" android:layout_alignLeft="@id/head_pic" android:layout_centerHorizontal="true" /> <TextView android:id="@+id/password_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/user_name_text" android:layout_alignBottom="@id/password" android:layout_marginTop="15dp" android:layout_toLeftOf="@id/user_name" android:gravity="center_vertical" android:text="Password:" /> <EditText android:id="@+id/password" android:layout_width="110dp" android:layout_height="wrap_content" android:layout_below="@+id/user_name" android:layout_alignLeft="@id/head_pic" android:layout_centerHorizontal="true" /> <Button android:id="@+id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/password_text" android:layout_alignLeft="@id/password_text" android:onClick="onLogin" android:text="登入" /> <Button android:id="@+id/register" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/password_text" android:layout_centerHorizontal="true" android:layout_toRightOf="@id/login" android:onClick="onRegister" android:text="註冊" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="15dp" android:text="copyright:不幾根不幾根之小母雞" />
註冊介面:
佈局程式碼:activity_register.xml
下面介紹主介面的程式碼:Main_Activity.class<TextView android:text="Register" android:layout_centerHorizontal="true" android:layout_marginTop="40dp" android:textColor="#FFAA80" android:textSize="10pt" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <com.example.autum.layotdemo.customview.CircleImageView android:id="@+id/head_pic_register" android:layout_width="150px" android:layout_height="150px" android:layout_centerHorizontal="true" android:layout_marginTop="90dp" android:src="@mipmap/head" /> <TextView android:id="@+id/user_name_register_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/head_pic" android:layout_alignBottom="@id/user_name_register" android:layout_marginTop="15dp" android:layout_toLeftOf="@id/user_name_register" android:gravity="center_vertical" android:text="User Name:" /> <EditText android:id="@+id/user_name_register" android:layout_width="110dp" android:layout_height="wrap_content" android:layout_below="@+id/head_pic_register" android:layout_alignLeft="@id/head_pic_register" android:layout_centerHorizontal="true" /> <TextView android:id="@+id/password_register_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/user_name_register_text" android:layout_alignBottom="@id/password_register" android:layout_marginTop="15dp" android:layout_toLeftOf="@id/user_name_register" android:gravity="center_vertical" android:text="Password:" /> <EditText android:id="@+id/password_register" android:layout_width="110dp" android:layout_height="wrap_content" android:layout_below="@+id/user_name_register" android:layout_alignLeft="@id/head_pic_register" android:layout_centerHorizontal="true" /> <Button android:id="@+id/confirm" android:onClick="onConfirm" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/password_register_text" android:layout_alignLeft="@id/password_register_text" android:text="確定" /> <Button android:id="@+id/reset" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/password_register_text" android:layout_centerHorizontal="true" android:layout_toRightOf="@id/confirm" android:onClick="onReset" android:text="重置" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="15dp" android:text="copyright:不幾根不幾根之小母雞" />
package com.example.autum.layotdemo;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import com.example.autum.layotdemo.activity.RegisterAcitvity;
public class MainActivity extends AppCompatActivity {
private EditText userName;
private EditText password;
//—
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//這裡連結佈局.xml檔案
setContentView(R.layout.activity_main);
initControls();
}
//初始化兩個EditText控制元件
private void initControls() {
userName = findViewById(R.id.user_name);
password = findViewById(R.id.password);
}
//由於我的登入按鈕中設定了onClick="onLogin"屬性,所i這裡onLogin方法就是登入按鈕的點選監聽方法
public void onLogin(View view){
if (userName.getText().toString().trim().equals(“lee”)&&password.getText().toString().trim().equals(“123456”)){
Toast.makeText(this,“登入成功”,Toast.LENGTH_LONG).show();
}else {
Toast.makeText(this, “使用者名稱或密碼錯誤!”, Toast.LENGTH_SHORT).show();
}
}
//onClick=“onRegister”
public void onRegister(View view) {
//intent類是安卓介面跳轉的方法
Intent intent = new Intent();
//設定需要跳轉的Activity
intent.setClass(this, RegisterAcitvity.class);
//這裡是選擇了一個能帶結果返回的一個Intent,如果直接跳轉,使用this.startActivity(intent);
this.startActivityForResult(intent, 101);
}
//這是從Register_Activity中返回的註冊資料,並顯示到編輯框中
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 101) {
if(resultCode == 202){
String userNameForResult = data.getStringExtra(“userName”);
String passwordForResult = data.getStringExtra(“password”);
userName.setText(userNameForResult);
password.setText(passwordForResult);
}
}
}
}
這裡是註冊介面主要程式碼,主要功能獲取填寫的User Name和Password資料
Register_Activity.class
package com.example.autum.layotdemo.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import com.example.autum.layotdemo.R;
public class RegisterAcitvity extends Activity {
private EditText userNameRegister;
private EditText passwordRegister;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
initControls();
}
//初始化控制元件
private void initControls(){
userNameRegister = findViewById(R.id.user_name_register);
passwordRegister = findViewById(R.id.password_register);
}
//確認按鈕的點選事件
public void onConfirm(View view){
//點選確認之後,獲取編輯欄中的文字
String userName = userNameRegister.getText().toString().trim();
String password= passwordRegister.getText().toString().trim();
// 設定一個Intent傳遞資料
Intent intent1 = new Intent();
//將資料存到Extra中,以便在另一個Activity獲取
intent1.putExtra(“userName”,userName);
intent1.putExtra(“password”,password);
//返回結果,設定resultCode,以便檢查資料
setResult(202,intent1);
finish();
}
//重置的點選事件,將EditText置為空
public void onReset(View view){
userNameRegister.setText("");
passwordRegister.setText("");
}
}
當然這裡講的比較片面,如果想繼續深入Intent,請轉到官網:https://developer.android.google.cn/reference/android/content/Intent
小新提示:activity想要顯示是需要註冊的喲!