刚开始学习Android,希望童鞋们不吝赐教,
目前只完成界面跟验证部分,未跟数据库打交道。
package com.sharpandroid;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.Toast;
public class UserRegisterActivity extends Activity {
// private static final String[] CITY = {"北京", "上海", "深圳", "合肥", "武汉"};
private int[] userHobbyId = {R.id.pingpang, R.id.basketball, R.id.football, R.id.tetennis};
private static final String TAG = "Register";
// 得到相应的显示空间对象
private EditText userName;
private EditText password;
private EditText userAge;
private RadioButton userSex;
private List<String> userHobby;
private Spinner userCity;
private Button registerButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 给Spinner初始化数据
Spinner spinner1 = (Spinner)findViewById(R.id.userCitySpinner);
ArrayAdapter<?> adapter = ArrayAdapter.createFromResource(this, R.array.city, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter);
userName = (EditText)findViewById(R.id.userNameEdit);
password = (EditText)findViewById(R.id.passwordEdit);
userAge = (EditText)findViewById(R.id.userAgeEdit);
// userSex = getUserSex((RadioGroup)findViewById(R.id.userSexRadioGroup));
// userHobby = getUserHobby();
// userCity = (Spinner)findViewById(R.id.userCitySpinner);
registerButton = (Button)findViewById(R.id.registerButton);
registerButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if (validationUser()) {
// Toast.makeText(UserRegisterActivity.this, "确认注册吗?", Toast.LENGTH_SHORT).show();
new AlertDialog
.Builder(UserRegisterActivity.this)
.setTitle("请确认信息")
.setMessage(registerInfo())
.setCancelable(false)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
ProgressDialog.show(UserRegisterActivity.this, "用户信息注册中...", "请等待...").setCancelable(true);
}
})
.setNegativeButton("修改", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
})
.show();
}
}
});
/*
// 这部分的功能是想动态的生成checkbox在线性布局内
String[] hobby = getResources().getStringArray(R.array.hobby);
for (String h : hobby) {
CheckBox checkbox = new CheckBox(UserRegisterActivity.this);
Log.i(TAG, h);
}*/
// 若是ListView可以加OnItemClickListener
/* spinner1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Toast.makeText(context, view.getTag().toString(), Toast.LENGTH_SHORT).show();
}
});*/
}
private RadioButton getUserSex(RadioGroup radioGroup) {
return (RadioButton)findViewById(radioGroup.getCheckedRadioButtonId());
}
// 获取选中的用户爱好
private List<String> getUserHobby() {
if (userHobbyId!=null&&userHobbyId.length>0) {
userHobby = new ArrayList<String>();
// StringBuilder hobby = new StringBuilder();
for (int id : userHobbyId) {
CheckBox cb = (CheckBox)findViewById(id);
if (cb.isChecked()) {
userHobby.add(cb.getText().toString());
}
}
return userHobby;
}
return null;
}
private boolean validationUser() {
if (userName==null||userName.getText().toString().length()==0) {
userName.setError("用户名不能为空!");
return false;
}
if (password==null||password.getText().toString().length()==0) {
password.setError("密码不能为空!");
return false;
}
if (userAge==null||userAge.getText().toString().length()==0) {
userAge.setError("年龄不能为空!");
return false;
} else {
String regx = "([1-9]{1})|([1-9]{1}[0-9]{1})|(1{1}0{2})";
String age = userAge.getText().toString();
if (!age.matches(regx)) {
userAge.setError("年龄应该在0-100之间");
return false;
}
}
if (getUserHobby()==null||userHobby.isEmpty()) {
Toast.makeText(UserRegisterActivity.this, "至少选择一个喜好!", Toast.LENGTH_SHORT).show();
return false;
}
userCity = (Spinner)findViewById(R.id.userCitySpinner);
userSex = getUserSex((RadioGroup)findViewById(R.id.userSexRadioGroup));
return true;
}
private String registerInfo() {
StringBuilder info = new StringBuilder();
info.append("您注册的信息如下:\n");
info.append("姓名:");info.append(userName.getText().toString());info.append("\n");
info.append("密码:");info.append(password.getText().toString());info.append("\n");
info.append("年龄:");info.append(userAge.getText().toString());info.append("\n");
info.append("性别:");info.append(userSex.getText().toString());info.append("\n");
info.append("爱好:");info.append(userHobby);info.append("\n");
info.append("城市:");info.append(userCity.getSelectedItem().toString());info.append("\n");
Log.i(TAG, info.toString());
return info.toString();
}
}
分享到:
相关推荐
这个"Android:简单登录注册Demo"就是一个实例,展示了如何利用SQLite数据库实现本地存储用户信息的功能。以下将详细介绍该Demo中的关键知识点。 1. **SQLite数据库**: SQLite是一个轻量级的嵌入式数据库,无需...
在Android平台上,语音识别是一项重要的功能,它使得用户可以通过自然语言与应用进行交互,提高了用户体验。本示例项目“android语音识别demo”采用的是科大讯飞(IFlytek)的API,这是一个在中国广泛使用的语音识别...
在Android应用开发中,选项卡(Tab)是一种常见的用户界面元素,用于组织和展示多个相关的视图或内容区域。在本“android选项卡demo”中,开发者已经简单实现了选项卡的切换、颜色设置等基本功能。这个Demo主要涉及...
【Android 安卓入门Demo详解】 Android 是一种广泛使用的开源操作系统,主要应用于移动设备,如智能手机和平板电脑。本入门Demo提供了全面的学习资源,涵盖了Android开发中的基础元素和关键概念,帮助初学者快速...
本"android rtsp播放DEMO"是一个简单的应用示例,展示了如何在Android设备上实现RTSP流媒体播放。通过修改RTSP地址,用户可以轻松切换不同的视频源进行播放,这为开发自定义视频播放器提供了基础。 首先,我们来看...
在Android应用开发中,用户注册与登录是常见的功能模块,对于初学者来说,理解并实现这一过程是至关重要的。本文将基于一个名为"MyLoginDemo"的小型项目,深入解析Android应用中的用户注册与登录功能的实现,以及...
【Android学习代码Demo】 在移动应用开发领域,Android是最受欢迎的操作系统之一,广泛应用于智能手机和平板电脑。这个“Android学习代码demo”集合提供了一个实践学习Android开发的良好平台,特别是对于初学者或者...
【Android SipDemo详解】 Android SipDemo是一个官方提供的示例应用,用于演示如何在Android平台上使用SIP(Session Initiation Protocol)进行VoIP(Voice over IP)通信。这个项目对于开发者来说,尤其是那些想要...
这个"android登录注册界面设计demo"涵盖了Android开发中基础且重要的知识点,包括用户界面设计、数据验证、网络通信、图片处理等,对于初学者来说是一个很好的学习实例。通过深入研究和理解这个demo,开发者可以构建...
总的来说,这个DEMO为开发者提供了一个基础模板,展示了如何在Android应用中集成指纹识别功能,从而提升应用的安全性和用户体验。通过学习和理解这个DEMO,开发者可以将指纹识别集成到自己的应用中,创建更安全、...
在这个“android nfc开发 demo”中,我们将会探讨如何在Android平台上利用NFC功能进行应用开发。 一、NFC基础知识 1. NFC工作原理:NFC基于射频识别(RFID)技术,通过短距离的高频无线通信,实现设备间的交互。...
本项目“Android百度地图demo”是一个示例工程,它利用了百度官方提供的SDK,帮助开发者快速理解和掌握如何在自己的应用中整合百度地图服务。 首先,我们需要了解**百度地图API**。这是百度为开发者提供的地理位置...
总的来说,这个Demo覆盖了Android UI设计、用户偏好设置、数据存储以及事件监听等多个重要知识点,对于提升Android开发者的实践能力非常有帮助。通过实际操作和理解源码,开发者能够更好地掌握这些技术并应用到自己...
本示例“Android时钟Widget Demo”着重于创建一个自定义的时钟组件,让用户可以在主屏幕上看到实时的时间显示,同时可能包含一些独特的动画效果。 首先,我们来探讨Android Widget的基本构建过程: 1. **创建布局...
2. **监听用户绘制**:为了获取用户绘制的图案,你需要注册一个`LockPatternView.OnPatternListener`监听器。在这个监听器中,你可以重写`onPatternStart()`, `onPatternCellAdded()`, `onPatternDetected()`等方法...
本示例"android java 开发can通信demo"将教你如何在Android应用中实现CAN通信功能。 首先,你需要了解CAN协议的基本概念。CAN协议是一种多主站总线,允许在分布式实时控制系统中进行数据通信。它定义了两种帧格式:...
"Android串口通信Demo"是指一个示例项目,演示了如何在Android应用中实现串口通信功能,而无需显示任何弹窗,这样可以提供更为流畅和隐蔽的用户体验。 串口通信的基本概念包括波特率、数据位、停止位和校验位。波特...
**Android微信支付Demo详解** 在移动应用开发领域,集成第三方支付接口是不可或缺的功能之一,尤其在社交、电商等场景中,微信支付因其广泛的用户基础,成为开发者首选的支付方式之一。本篇将深入探讨Android环境下...
通过研究这个DEMO,开发者不仅可以学习到ijkplayer的基本用法,还可以了解如何在实际项目中进行播放器的优化和调试,提升视频播放的用户体验。同时,由于ijkplayer是开源的,深入研究其源码还能帮助开发者理解媒体...