您的位置:首页 > 其它

安卓案例:利用相对布局实现注册页面

2018-03-06 09:31 597 查看
安卓案例:利用相对布局实现注册页面
一、相对布局(RelativeLayout)一个控件的位置取决于它和其它控件的相对关系。优点:比较灵活;缺点:掌握比较复杂。 
(一)继承关系图


(二)常用属性1、相对于父容器居中(1)centerInParent  在父容器居中(2)centerHorizontal 在父容器水平居中(3)centerVertical 在父容器垂直居中
2、相对于其它控件的位置(1)toLeftOf 在……左边(2)toRightOf 在……右边(3)above 在……上面(4)below 在……下面
3、相对于其它控件对齐(1)layout_alignLeft 与……左对齐(2)layout_alignRight 与……右对齐(3)layout_alignTop 与……顶对齐(4)layout_alignBottom 与……底对齐(5)layout_alignBaseLine 与……基线对齐
4、相对于父容器对齐(1)layout_alignParentLeft 与父容器左对齐(2)layout_alignParentRight 与父容器右对齐(3)layout_alignParentTop 与父容器顶对齐(4)layout_alignParentBottom 与父容器底对齐
@+id/button —— 创建新的id(建议使用)
@id/button —— 引用已有的id

二、案例运行效果


三、实现步骤1、创建安卓应用0403Demo


2、修改主布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
android:background="@mipmap/background"
android:padding="16dp"
tools:context="net.hw.ex0403.MainActivity">

<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="@string/title"
android:textColor="#0000ff"
android:textSize="30sp" />

<TextView
android:id="@+id/tv_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_title"
android:layout_marginTop="15dp"
android:text="@string/username"
android:textSize="20sp" />

<EditText
android:id="@+id/edt_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/tv_username"
android:layout_toRightOf="@+id/tv_username"
android:hint="@string/input_username"
android:textSize="20sp" />

<TextView
android:id="@+id/tv_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_username"
android:layout_marginTop="20dp"
android:text="@string/password"
android:textSize="20sp" />

<EditText
android:id="@+id/edt_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/tv_password"
android:layout_alignLeft="@+id/edt_username"
android:layout_toRightOf="@+id/tv_password"
android:hint="@string/input_password"
android:inputType="textPassword"
android:textSize="20sp" />

<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_password"
android:layout_marginTop="20dp"
android:text="@string/phone"
android:textSize="20sp" />

<EditText
android:id="@+id/edt_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/tv_phone"
android:layout_alignLeft="@+id/edt_password"
android:layout_toRightOf="@+id/tv_phone"
android:hint="@string/input_phone"
android:textSize="20sp" />

<TextView
android:id="@+id/tv_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_phone"
android:layout_marginTop="20dp"
android:text="@string/email"
android:textSize="20sp" />

<EditText
android:id="@+id/edt_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/tv_email"
android:layout_alignLeft="@+id/edt_phone"
android:hint="@string/input_email"
android:textSize="20sp" />

<TextView
android:id="@+id/tv_gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_email"
android:layout_marginTop="20dp"
android:text="@string/gender"
android:textSize="20sp" />

<RadioGroup
android:id="@+id/rg_gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/edt_email"
android:layout_alignTop="@+id/tv_gender"
android:layout_toRightOf="@+id/tv_gender"
android:orientation="horizontal">

<RadioButton
android:id="@+id/rb_male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="30dp"
android:checked="true"
android:text="@string/male"
android:textSize="20sp" />

<RadioButton
android:id="@+id/rb_female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/female"
android:textSize="20sp" />

</RadioGroup>

<TextView
android:id="@+id/tv_hobby"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_gender"
android:layout_marginTop="20dp"
android:text="@string/hobby"
android:textSize="20sp" />

<CheckBox
android:id="@+id/cb_travel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/tv_hobby"
android:layout_alignLeft="@+id/rg_gender"
android:layout_toRightOf="@+id/tv_hobby"
android:text="@string/travel"
android:textSize="18sp" />

<CheckBox
android:id="@+id/cb_music"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@id/cb_travel"
android:layout_toRightOf="@+id/cb_travel"
android:text="@string/music"
android:textSize="18sp" />

<CheckBox
android:id="@+id/cb_food"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@id/cb_music"
android:layout_toRightOf="@id/cb_music"
android:text="@string/food"
android:textSize="18sp" />

<Button
android:id="@+id/btn_submit"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_hobby"
android:layout_marginLeft="60dp"
android:layout_marginTop="20dp"
android:background="#00aa00"
android:onClick="doSubmit"
android:text="@string/submit"
android:textColor="#ffffff" />

<Button
android:id="@+id/btn_reset"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/tv_hobby"
android:layout_marginRight="60dp"
android:layout_marginTop="20dp"
android:background="#00aa00"
android:onClick="doReset"
android:text="@string/reset"
android:textColor="#ffffff" />

</RelativeLayout>
3、修改字符串资源文件strings.xml
<resources>
<string name="app_name">0403Demo</string>
<string name="title">注册个人信息</string>
<string name="username">用户名:</string>
<string name="input_username">请输入用户名</string>
<string name="password">密码:</string>
<string name="input_password">请输入密码</string>
<string name="phone">电话:</string>
<string name="input_phone">请输入电话号码</string>
<string name="email">邮箱:</string>
<string name="input_email">请输入邮箱</string>
<string name="gender">性别:</string>
<string name="male">男</string>
<string name="female">女</string>
<string name="hobby">兴趣:</string>
<string name="travel">旅行</string>
<string name="music">音乐</string>
<string name="food">美食</string>
<string name="submit">提交</string>
<string name="reset">重置</string>
</resources>
此时运行程序,看看效果:


4、主界面类MainActivity
package net.hw.ex0403;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends Activity {
private EditText edtUsername;
private EditText edtPassword;
private EditText edtPhone;
private EditText edtEmail;
private RadioGroup rgGender;
private RadioButton rbMale;
private CheckBox cbTravel;
private CheckBox cbMusic;
private CheckBox cbFood;

private String gender;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 利用布局资源文件设置用户界面
setContentView(R.layout.activity_main);

// 通过资源标识获取控件实例
edtUsername = (EditText) findViewById(R.id.edt_username);
edtPassword = (EditText) findViewById(R.id.edt_password);
edtPhone = (EditText) findViewById(R.id.edt_phone);
edtEmail = (EditText) findViewById(R.id.edt_email);
rgGender = (RadioGroup) findViewById(R.id.rg_gender);
rbMale = (RadioButton) findViewById(R.id.rb_male);
cbTravel = (CheckBox) findViewById(R.id.cb_travel);
cbMusic = (CheckBox) findViewById(R.id.cb_music);
cbFood = (CheckBox) findViewById(R.id.cb_food);
}

/**
* 提交事件处理方法
*
* @param view
*/
public void doSubmit(View view) {
/* 获取用户设置的信息 */
// 获取用户名
String username = edtUsername.getText().toString().trim();
// 获取密码
String password = edtPassword.getText().toString().trim();
// 获取电话
String phone = edtPhone.getText().toString().trim();
// 获取邮箱
String email = edtEmail.getText().toString().trim();
// 获取性别
gender = ((RadioButton) findViewById(rgGender.getCheckedRadioButtonId())).getText().toString();
// 获取兴趣
StringBuilder builder = new StringBuilder();
if (cbTravel.isChecked()) {
builder.append(cbTravel.getText().toString() + " ");
}
if (cbMusic.isChecked()) {
builder.append(cbMusic.getText().toString() + " ");
}
if (cbFood.isChecked()) {
builder.append(cbFood.getText().toString());
}
String hobby = builder.toString().trim();

// 在当前窗口显示注册信息
String regInfo = username + "\n" + password + "\n" + phone + "\n" + email + "\n" + gender + "\n" + hobby;
Toast.makeText(this, regInfo, Toast.LENGTH_SHORT).show();

// 创建意图,从MainActivity跳转到ResultActivity
Intent intent = new Intent(MainActivity.this, ResultActivity.class);
// 创建数据包封装用户要提交的数据
Bundle data = new Bundle();
data.putString("username", username);
data.putString("password", password);
data.putString("phone", phone);
data.putString("email", email);
data.putString("gender", gender);
data.putString("hobby", hobby);
// 将数据包作为意图的附加数据
intent.putExtras(data);
// 按意图启动组件
startActivity(intent);
}

/**
* 重置事件处理方法
*
* @param view
*/
public void doReset(View view) {
edtUsername.setText("");
edtPassword.setText("");
edtPhone.setText("");
edtEmail.setText("");
rbMale.setChecked(true);
cbTravel.setChecked(false);
cbMusic.setChecked(false);
cbFood.setChecked(false);
}
}
四、课堂作业1、创建ResultActivity2、设计ResultActivity布局3、显示注册信息

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐