1)创建“登录页面”程序
创建一个名为“登录页面”的布局文件login.xml,该文件用于展示登录信息。程序界面如下图所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:background="@drawable/login">
<TextView
android:id="@+id/jiemian"
android:layout_width="match_parent"
android:layout_height="60dp"
android:text= "登陆界面"
android:textSize="40sp"
android:textColor="#FFFFFF"
android:background="#FF8F03"
/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名:"
android:layout_marginTop="20dp"
android:layout_below="@id/jiemian"
android:textSize="30sp"
android:textStyle="bold"
android:textColor="#FF8000"/>
<EditText
android:id="@+id/username"
android:layout_width="300dp"
android:layout_height="40dp"
android:layout_toRightOf="@id/name"
android:layout_below="@id/jiemian"
android:layout_marginTop="20dp"
android:hint="请输入昵称"
android:minLines="1"
android:textSize="15sp"
/>
<TextView
android:id="@+id/edit_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_below="@id/name"
android:text="密 码:"
android:textSize="30sp"
android:textStyle="bold"
android:textColor="#FF8000"/>
<EditText
android:id="@+id/password"
android:layout_width="300dp"
android:layout_height="40dp"
android:layout_below="@id/name"
android:layout_marginTop="20dp"
android:hint="请输入密码"
android:inputType="textPassword"
android:minLines="1"
android:textSize="15sp"
android:layout_toRightOf="@id/edit_password"/>
<Button
android:id="@+id/submit"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:layout_centerHorizontal="true"
android:layout_below="@id/password"
android:text="提交"
android:textSize="30sp"
android:textStyle="bold"/>
<Button
android:id="@+id/reg"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/submit"
android:layout_marginTop="40dp"
android:text="注册"
android:layout_below="@id/password"
android:textSize="30sp"
android:textStyle="bold"
android:onClick="Click"/>
</RelativeLayout>
创建“登录页面”的界面交互代码Login.java,该程序实现用户信息的输入与显示,并通过点击按钮实现界面的切换。关键代码如下:
package com.itheima.mylogin;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class Login extends AppCompatActivity {
private EditText unameEt, upassEt;
private Button submit,register;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
unameEt = (EditText) findViewById(R.id.username);
upassEt = (EditText) findViewById(R.id.password);//register-findViewByld(R.id.register);
submit = (Button) findViewById(R.id.submit);
submit.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
//TODO Auto-generated method stub
String username = unameEt.getText().toString();
String password = upassEt.getText().toString();
SharedPreferences references = getSharedPreferences("account", Context.MODE_PRIVATE);
String name = references.getString("username", "");
String psw = references.getString("password", "");
Log.i("name", name );
if (username.isEmpty() | password.isEmpty()) {
String sb = "用户名和密码不能为空";
Toast.makeText(Login.this, sb.toString(), Toast.LENGTH_LONG).show();
} else if (name.equals(username) && psw.equals(password)) {
Intent intent1 = new Intent(Login.this, LoginOk.class);
startActivity(intent1);
} else {
String sb = "请输入正确的用户名和密码";
Toast.makeText(Login.this, sb.toString(), Toast.LENGTH_LONG).show();
}
}
});
}
public void Click(View v) {
Intent intent= new Intent(Login.this, Register.class);
startActivityForResult(intent, 1);
//Toast.make Text(this," ilbXIJ",Toast.LENGTH. _LONG).login. _ok();
}
@Override
protected void onActivityResult(int requestCode,int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if (resultCode == 1) {
String name = data.getStringExtra("uname");
String pass = data.getStringExtra("upassword");
unameEt.setText(name);
upassEt.setText(pass);
}
}
}}
`(2)创建“注册页面”程序
创建一个名为“注册页面”的布局文件,该文件用于展示登录信息。程序界面如下图所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="@drawable/login5"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/register_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginTop="22dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="5dp"
android:text="用户注册"
android:textSize="35sp"
android:textStyle="bold"
android:textColor="#FF8000"/>
</LinearLayout>
<LinearLayout
android:id="@+id/etuser"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginRight="10dp"
android:layout_below="@id/register_name"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:padding="5dp"
android:text="用户名:"/>
<EditText
android:id="@+id/et_user"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入您的用户名"
android:textSize="14sp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/regpassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:orientation="horizontal"
android:layout_below="@id/etuser">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:padding="5dp"
android:text="密 码:"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入密码"
android:id="@+id/password"
android:textSize="14sp"/>
</LinearLayout>
<TextView
android:id="@+id/sex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_below="@id/regpassword"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:padding="5dp"
android:text="性 别:"
/>
<RadioGroup
android:id="@+id/Sex_RadioGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@id/regpassword"
android:layout_toRightOf="@id/sex"
android:contentDescription="性别"
android:layout_marginTop="8dp"
android:layout_marginLeft="10dp"
>
<RadioButton
android:id="@+id/Sex_Man"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="男"/>
<RadioButton
android:id="@+id/Sex_Woman"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:text="女"/>
</RadioGroup>
<LinearLayout
android:id="@+id/register_like"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_below="@id/Sex_RadioGroup"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
>
<TextView
android:id="@+id/love"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_below="@id/sex"
android:layout_marginLeft="10dp"
android:layout_marginTop="1dp"
android:padding="5dp"
android:text="请选择兴趣爱好:"
/>
<CheckBox
android:id="@+id/love_sport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text= "体育"
android:textSize="18sp"/>
<CheckBox
android:id="@+id/love_music"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" 音乐"
android:textSize="18sp"/>
<CheckBox
android:id="@+id/love_readbook"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" 读书"
android:textSize="18sp"/>
<CheckBox
android:id="@+id/love_Internet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" 上网 "
android:textSize="18sp"/>
<TextView
android:id="@+id/hobby"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
/>
</LinearLayout>
<RelativeLayout
android:id="@+id/reg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_below="@+id/register_like"
>
<TextView
android:id="@+id/Result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_marginLeft="10dp"
android:layout_marginTop="1dp"
android:padding="5dp"
android:text="请选择身份:"
/>
<TextView
android:id="@+id/stua"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_marginTop="10dp"
/>
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/Result"
android:layout_marginLeft="10dp"
android:id="@+id/zhiwu"
/>
</RelativeLayout>
<Button
android:id="@+id/ok"
android:layout_below="@+id/reg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/cancel"
android:layout_marginTop="20dp"
android:text="确定"/>
<Button
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/reg"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="取消"/>
<Button
android:id="@+id/register"
android:layout_below="@+id/reg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/cancel"
android:layout_marginTop="20dp"
android:text="注册"/>
</RelativeLayout >
创建“注册页面”的界面交互代码Register.java,该程序实现用户信息的注册与数据传递,并通过点击按钮实现界面的切换。关键代码如下:
package com.itheima.mylogin;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
public class Register extends Activity {
private Spinner mySpinner;
private static final String[] provStr={"学生","老师","管理员","行政员"};
private ArrayAdapter<String> adapter1;
private CheckBox Sport_CheckBox, Music_CheckBox, ReadBook_CheckBox,Internet_CheckBox;
private RadioGroup radioGroup;
private RadioButton radiobutton1,radiobutton2;
private EditText et_user,et_passwd;
private Button bt_register,bt_cancel,bt_ok;
private TextView tv;
private String sex;
@ Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
mySpinner=(Spinner) findViewById(R.id.zhiwu);
adapter1=new ArrayAdapter<String> (this,android.R.layout.simple_spinner_item,provStr);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_item);
//将 ArrayAdapter添加Spinner对象中
mySpinner.setAdapter(adapter1);
Sport_CheckBox=(CheckBox) findViewById(R.id.love_sport);
Music_CheckBox=(CheckBox) findViewById(R.id.love_music);
ReadBook_CheckBox=(CheckBox) findViewById(R.id.love_readbook);
Internet_CheckBox=(CheckBox) findViewById(R.id.love_Internet);
final EditText et_user=(EditText) findViewById(R.id.et_user);
final EditText et_passwd=(EditText) findViewById(R.id.password);
bt_register=(Button)findViewById(R.id.register);
bt_cancel=(Button)findViewById(R.id.cancel);
bt_ok=(Button)findViewById(R.id.ok);
tv=(TextView)findViewById(R.id.Result);
radioGroup=(RadioGroup)findViewById(R.id.Sex_RadioGroup);
radiobutton1=(RadioButton)findViewById(R.id.Sex_Man);
radiobutton2=(RadioButton)findViewById(R.id.Sex_Woman);
final Intent intent=new Intent(Register.this,RegisterOk.class);
bt_register.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String username=et_user.getText().toString().trim();
//获得密码:调用EditText的getText()方法
String userpassword=et_passwd.getText().toString().trim();
//String result="";
if(username.isEmpty()|| userpassword.isEmpty()) {
String sb = "请输入用户名和密码";
Toast.makeText(Register.this, sb.toString(), Toast.LENGTH_LONG).show();
}else{
intent.putExtra("name",username);
intent.putExtra("password",userpassword);
//获得性别
String sex="";
if (radiobutton1.isChecked()){sex="男";}
if(radiobutton2.isChecked()){sex="女";}
intent.putExtra("s",sex);
//获得身份
String st=mySpinner.getSelectedItem().toString().trim();
if(st!=""){
intent.putExtra("stuta",st);
}else{
Toast.makeText(Register.this, "请选择身份", Toast.LENGTH_LONG).show();
}
//获得爱好
String hobby="";
if (Sport_CheckBox.isChecked()){hobby+=" 运动";}
if (Music_CheckBox.isChecked()){hobby+=" 音乐";}
if (ReadBook_CheckBox.isChecked()){hobby+=" 读书";}
if (Internet_CheckBox.isChecked()){hobby+=" 上网";}
intent.putExtra("hobby", hobby);
startActivity(intent);
}
// 数据存储
SharedPreferences references
=Register.this.getSharedPreferences("account", Context.MODE_PRIVATE);
SharedPreferences.Editor editor=references.edit();
editor.putString("username", username);
editor.putString("password", userpassword);
editor.commit();
}
});
bt_ok.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String username=et_user.getText().toString();
//获得密码:调用EditText的getText()方法
String userpassword=et_passwd.getText().toString();
Intent intentok=new Intent();
intentok.putExtra("uname",username);
intentok.putExtra("upassword",userpassword);
setResult(1,intentok);
finish();
}
});
bt_cancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
et_user.setText("");
et_passwd.setText("");
}
});
}
}
(3)创建“用户信息显示界面”
创建一个名为“用户信息显示界面”的布局文件registerok.xml,该文件用于展示用户注册信息。程序界面如下图所示
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/login3">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="5dp"
android:text="注册成功界面"
android:textSize="35sp"
android:textStyle="bold"
android:textColor="#FF8000"/>
<TextView
android:textSize="35sp"
android:text="用户名:"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/tV1"/>
<TextView
android:textSize="35sp"
android:text="密码:"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/tV2"/>
<TextView
android:textSize="35sp"
android:text="性别:"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/tV3"/>
<TextView
android:textSize="35sp"
android:text="爱好:"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/tV4"/>
<TextView
android:textSize="35sp"
android:text="身份:"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/tV5"/>
<Button
android:textSize="35sp"
android:text="返回"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/but"
android:onClick="click"/>
</LinearLayout>
创建“用户信息显示界面”的界面交互代码RegisterokActivity.java,该程序实现用户信息显示。关键代码如下:
package com.itheima.mylogin;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class RegisterOk extends AppCompatActivity {
private TextView tv_name, tv_password,tv_sex,tv_st,tv_hobby;
private Button return_but;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register1_ok);
tv_name = (TextView) findViewById(R.id.tV1);
tv_password = (TextView) findViewById(R.id.tV2);
tv_sex = (TextView) findViewById(R.id.tV3);
tv_st = (TextView) findViewById(R.id.tV5);
tv_hobby = (TextView) findViewById(R.id.tV4);
return_but = (Button) findViewById(R.id.but);
Intent intent = getIntent();
String name = intent.getStringExtra("name");
String password = intent.getStringExtra("password");
String s = intent.getStringExtra("s");
String id = intent.getStringExtra("stuta");
String hobby = intent.getStringExtra("hobby");
tv_name.setText("用户名:" + name);
tv_password.setText("密 码:" + password);
tv_sex.setText("性 别:" + s);
tv_st.setText("身 份:" + id);
tv_hobby.setText("爱好:" + hobby);
}
public void click(View view){
finish();
/*Intent intent1=new Intent(this,Register.class);
startActivity(intent1);*/
}
}
4)创建“登录成功”程序
创建一个名为“登陆成功”的布局文件,该文件用于展示登录信息。程序界面如下图所示:
<?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:background="@drawable/login3"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:text= "登陆成功界面"
android:textSize="40sp"
android:textColor="#FFFFFF"
android:background=" #FF8F03"
android:gravity="left"/>
<TextView
android:id="@+id/gx"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="恭喜您,登陆成功!"
android:textSize="35sp"
android:textStyle="bold"
android:textColor="#FF8000"/>
<Button
android:id="@+id/textView1"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_below="@id/gx"
android:layout_alignParentLeft="true"
android:text="返回"
android:textSize="30sp"
android:textStyle="bold"
android:onClick="click1"/>
</LinearLayout>
创建“登录成功页面”的界面交互代码Activity1.java,该程序实现用户信息显示。关键代码如下:
package com.itheima.mylogin;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class LoginOk extends AppCompatActivity {
/** Called when the activity is first created. */
private TextView result1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_ok);
result1=(TextView)this.findViewById(R.id.textView1);
}
public void click1(View v){
Intent intent=new Intent();
intent.setAction("android.intent.action.VIEW");
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
}
}