`

android 用户注册demo

阅读更多
刚开始学习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

    这个"Android:简单登录注册Demo"就是一个实例,展示了如何利用SQLite数据库实现本地存储用户信息的功能。以下将详细介绍该Demo中的关键知识点。 1. **SQLite数据库**: SQLite是一个轻量级的嵌入式数据库,无需...

    android 语音识别demo

    在Android平台上,语音识别是一项重要的功能,它使得用户可以通过自然语言与应用进行交互,提高了用户体验。本示例项目“android语音识别demo”采用的是科大讯飞(IFlytek)的API,这是一个在中国广泛使用的语音识别...

    android选项卡demo

    在Android应用开发中,选项卡(Tab)是一种常见的用户界面元素,用于组织和展示多个相关的视图或内容区域。在本“android选项卡demo”中,开发者已经简单实现了选项卡的切换、颜色设置等基本功能。这个Demo主要涉及...

    完整的android 安卓入门demo

    【Android 安卓入门Demo详解】 Android 是一种广泛使用的开源操作系统,主要应用于移动设备,如智能手机和平板电脑。本入门Demo提供了全面的学习资源,涵盖了Android开发中的基础元素和关键概念,帮助初学者快速...

    android rtsp播放DEMO

    本"android rtsp播放DEMO"是一个简单的应用示例,展示了如何在Android设备上实现RTSP流媒体播放。通过修改RTSP地址,用户可以轻松切换不同的视频源进行播放,这为开发自定义视频播放器提供了基础。 首先,我们来看...

    android注册登录小Demo

    在Android应用开发中,用户注册与登录是常见的功能模块,对于初学者来说,理解并实现这一过程是至关重要的。本文将基于一个名为"MyLoginDemo"的小型项目,深入解析Android应用中的用户注册与登录功能的实现,以及...

    android学习代码demo

    【Android学习代码Demo】 在移动应用开发领域,Android是最受欢迎的操作系统之一,广泛应用于智能手机和平板电脑。这个“Android学习代码demo”集合提供了一个实践学习Android开发的良好平台,特别是对于初学者或者...

    Android官方提供的SipDemo

    【Android SipDemo详解】 Android SipDemo是一个官方提供的示例应用,用于演示如何在Android平台上使用SIP(Session Initiation Protocol)进行VoIP(Voice over IP)通信。这个项目对于开发者来说,尤其是那些想要...

    android登录注册界面设计demo

    这个"android登录注册界面设计demo"涵盖了Android开发中基础且重要的知识点,包括用户界面设计、数据验证、网络通信、图片处理等,对于初学者来说是一个很好的学习实例。通过深入研究和理解这个demo,开发者可以构建...

    android 指纹识别 demo

    总的来说,这个DEMO为开发者提供了一个基础模板,展示了如何在Android应用中集成指纹识别功能,从而提升应用的安全性和用户体验。通过学习和理解这个DEMO,开发者可以将指纹识别集成到自己的应用中,创建更安全、...

    android nfc开发 demo

    在这个“android nfc开发 demo”中,我们将会探讨如何在Android平台上利用NFC功能进行应用开发。 一、NFC基础知识 1. NFC工作原理:NFC基于射频识别(RFID)技术,通过短距离的高频无线通信,实现设备间的交互。...

    Android百度地图demo

    本项目“Android百度地图demo”是一个示例工程,它利用了百度官方提供的SDK,帮助开发者快速理解和掌握如何在自己的应用中整合百度地图服务。 首先,我们需要了解**百度地图API**。这是百度为开发者提供的地理位置...

    Android 字号设置Demo

    总的来说,这个Demo覆盖了Android UI设计、用户偏好设置、数据存储以及事件监听等多个重要知识点,对于提升Android开发者的实践能力非常有帮助。通过实际操作和理解源码,开发者能够更好地掌握这些技术并应用到自己...

    Android 时钟 Widget Demo

    本示例“Android时钟Widget Demo”着重于创建一个自定义的时钟组件,让用户可以在主屏幕上看到实时的时间显示,同时可能包含一些独特的动画效果。 首先,我们来探讨Android Widget的基本构建过程: 1. **创建布局...

    android 图形解锁demo

    2. **监听用户绘制**:为了获取用户绘制的图案,你需要注册一个`LockPatternView.OnPatternListener`监听器。在这个监听器中,你可以重写`onPatternStart()`, `onPatternCellAdded()`, `onPatternDetected()`等方法...

    android java 开发can通信demo

    本示例"android java 开发can通信demo"将教你如何在Android应用中实现CAN通信功能。 首先,你需要了解CAN协议的基本概念。CAN协议是一种多主站总线,允许在分布式实时控制系统中进行数据通信。它定义了两种帧格式:...

    Android串口通信Demo

    "Android串口通信Demo"是指一个示例项目,演示了如何在Android应用中实现串口通信功能,而无需显示任何弹窗,这样可以提供更为流畅和隐蔽的用户体验。 串口通信的基本概念包括波特率、数据位、停止位和校验位。波特...

    Android微信支付demo

    **Android微信支付Demo详解** 在移动应用开发领域,集成第三方支付接口是不可或缺的功能之一,尤其在社交、电商等场景中,微信支付因其广泛的用户基础,成为开发者首选的支付方式之一。本篇将深入探讨Android环境下...

    Android ijkplayer的DEMO

    通过研究这个DEMO,开发者不仅可以学习到ijkplayer的基本用法,还可以了解如何在实际项目中进行播放器的优化和调试,提升视频播放的用户体验。同时,由于ijkplayer是开源的,深入研究其源码还能帮助开发者理解媒体...

Global site tag (gtag.js) - Google Analytics