[转]Android的userlogin登录
本文转自:http://hteqc6o.blog.sohu.com/199334086.html
用户注册
1.首先,先画你想要编译出的界面
根据草图,仅仅使用linearLayout的布局是不够的,还需要与RelativeLayout嵌套使用
编写String.Xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, UserLoginActivity!</string>
<string name="app_name">用户注册界面</string>
<string name="nameString">用户名</string>
<string name="ageString">年龄</string>
<string name="registerButtonText">注册</string>
<string name="sexString">性别</string>
<string name="favoriteString">喜好</string>
<string name="cityString">城市</string>
<string name="passString">密码</string>
<string name="pingpang">兵乓球</string>
<string name="basketball">篮球</string>
<string name="football">足球</string>
<string name="tennis">网球</string>
</resources>
编写parameters.xml:
这是存放属性信息,如字体、TextView和EditText的宽度。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="fontSize">22px</dimen>
<dimen name="TextViewWidth">90px</dimen>
<dimen name="EditTextWidth">160px</dimen>
</resources>
再编写main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="@dimen/TextViewWidth"
android:layout_height="wrap_content"
android:text="@string/nameString"
android:textSize="@dimen/fontSize"
android:id="@+id/name"/>
<EditText
android:layout_width="@dimen/EditTextWidth"
android:layout_height="wrap_content"
android:layout_toRightOf="@string/nameString"
android:layout_alignTop="@id/name"
android:id="@+id/nameValue"/>/
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="@dimen/EditTextWidth"
android:layout_height="wrap_content"
android:text="@string/passString"
android:textSize="@dimen/fontSize"
android:id="@+id/pass"/>
<EditText
android:password="true"
android:layout_width="@dimen/EditTextWidth"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/pass"
android:layout_alignTop="@id/pass"
android:id="@+id/passValue"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView android:layout_width="@dimen/TextViewWidth"
android:layout_height="wrap_content"
android:text="@string/ageString"
android:textSize="@dimen/fontSize"
android:id="@+id/age"
/>
<EditText
android:layout_width="@dimen/EditTextWidth"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/age"
android:layout_alignTop="@id/age"
android:id="@+id/ageValue"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView android:layout_width="@dimen/TextViewWidth"
android:layout_height="wrap_content"
android:text="@string/sexString"
android:textSize="@dimen/fontSize"
android:id="@+id/sex"
/>
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/sex"
android:checkedButton="@+id/radioMan"
android:orientation="horizontal"
android:id="@+id/sexMenu">
<RadioButton android:text="男" android:id="@id/radioMan"/>
<RadioButton android:text="女" android:id="@+id/radioWomen"/>
</RadioGroup>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="@dimen/TextViewWidth"
android:layout_height="wrap_content"
android:text="@string/favoriteString"
android:textSize="@dimen/fontSize"
android:id="@+id/favorite"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/favorite"
android:text="@string/pingpang"
android:id="@+id/checkboxpingpang"
/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/checkboxpingpang"
android:text="@string/football"
android:id="@+id/checkboxfootball"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/favorite"
android:layout_below="@id/checkboxfootball"
android:text="@string/basketball"
android:id="@+id/checkboxbasketball"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/checkboxbasketball"
android:layout_alignTop="@id/checkboxbasketball"
android:text="@string/tennis"
android:id="@+id/checkboxtennis"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="@dimen/TextViewWidth"
android:layout_height="wrap_content"
android:text="@string/cityString"
android:textSize="@dimen/fontSize"
android:id="@+id/city"/>
<Spinner
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/city"
android:id="@+id/cityItems">
</Spinner>
</RelativeLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/registerButtonText"
android:id="@+id/regidterButton"/>
</LinearLayout>
·参数设置:
<dimen name=”fontSize”>22px</dimen>
存放px(pixels),in(inches),mm(millmeters),pt(points at 72 DPI)类型的数据
·应用:
Android:textSize=”@dimen/fontSize”
·布局的特别属性
在这里我们需要用到Relativelayout 的个别属性,例如:
Android:layout_toRightOf=”@id/age”
这是与控件age向右对齐
·输入框的输入限制
Android:numeric=”integer
编写java代码:
” package com.sharpandroid.UserLogin;
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.view.View;
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;
public class LoginActivity extends Activity {
private static final String[] cities = {"北京","上海","石家庄","保定","米兰","慕尼黑","巴黎"};
private EditText name,age,pass;
private Button regButton;
private RadioGroup sexRadioGroup;
private CheckBox basketball,football,pingpang,tennis;
private Spinner cityItems;
private boolean flag = true;
private List<CheckBox> favorities;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//定义一个ArrayList,用来存放所有的checkBox
favorities = new ArrayList<CheckBox>();
//得到相应的对对象
name = (EditText) findViewById(R.id.nameValue);
age = (EditText) findViewById(R.id.ageValue);
pass = (EditText) findViewById(R.id.passValue);
regButton = (Button) findViewById(R.id.regidterButton);
cityItems = (Spinner) findViewById(R.id.cityItems);
sexRadioGroup = (RadioGroup) findViewById(R.id.sexMenu);
basketball = (CheckBox) findViewById(R.id.checkboxbasketball);
//将basketball对象添加到favorities中
favorities.add(basketball);
football = (CheckBox) findViewById(R.id.checkboxfootball);
favorities.add(football);
pingpang = (CheckBox) findViewById(R.id.checkboxpingpang);
favorities.add(pingpang);
tennis = (CheckBox) findViewById(R.id.checkboxtennis);
favorities.add(tennis);
//创建一个数组型适配器,并将cities中的数据
ArrayAdapter<String>adpter = new ArrayAdapter<String>(
LoginActivity.this,android.R.layout.simple_spinner_item,cities);
adpter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
cityItems.setAdapter(adpter);
//为regButton注册一个事件监听器
regButton.setOnClickListener(new View.OnClickListener() {
//当按钮被点击的时候调用
@Override
public void onClick(View v) {
flag = addUser();
if(flag)
//创建Alertdialog对话框的显示登录信息。
new
AlertDialog.Builder(LoginActivity.this).setTitle("请确认信息")
.setMessage("您的信息如下:"+"\n" + "姓名:"
+name.getText().toString()+"/n"+" 年龄:"
+age.getText().toString()+"/n"+"性别:"
+getSex()+"\n"+"爱好:"+getFavorite()
+"\n"+"城市:"+getCity()+"\n")
.setCancelable(false).setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog, int id) {
// TODO Auto-generated method stub
ProgressDialog.show(
LoginActivity.this,"用户信息注册中","请等待……")
.setCancelable(true);
}
}).setNegativeButton("修改",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog, int id) {
dialog.cancel();//删除对话框
}
}).show();
}
});
}
//获取Spinner中的值
private String getCity(){
return cities[cityItems.getSelectedItemPosition()];
}
//获取checkBox中的值
private String getFavorite(){
String favString = "";
for(CheckBox cd : favorities){
if (cd.isChecked()){
favString +=cd.getText().toString();
favString +=",";
}
}
if(favString != ""){
favString = favString.substring(0,favString.length() -1);
}else{
favString="您还没有选择!";
}return favString;
}
private String getSex(){
RadioButton mRadio = (RadioButton)findViewById
(sexRadioGroup.getCheckedRadioButtonId());
return mRadio.getText().toString();
}
public boolean addUser(){
if(name.getText().toString().length()==0){
name.setError("用户名不嫩为空");
return false;
}
if (age.getText().toString().length()==0){
age.setError("年龄不能为空");
return false;
}
if(pass.getText().toString().length()==0){
pass.setError("密码不能为空");
return false;
}
return true;
}
}
当你没有输入用户名就点击注册会出现提示:如下:

点击注册会出现:

[转]Android的userlogin登录的更多相关文章
- android 注册、登录实现程序
注册页面: user_register.xml: <?xml version="1.0" encoding="utf-8"?> <Linear ...
- Android 微信第三方登录(个人笔记)
今天在写微信登录,花了半天时间搞定.然后写下自己的笔记,希望帮助更多的人...欢迎各位指教. 微信授权登录,官方说的不是很清楚.所以导致有一部分的坑. 微信注册应用平台的应用签名,下载 微信签名生成工 ...
- Android UmengShareSDK第三方登录
Android UmengShareSDK 第三方登录- 今天就不废话了,集成平台第三方登录.市面上集成平台有shareSDK 和 Ument两种,shareSDK的ipa和服务好些,如果自己研究会很 ...
- android 案例二 登录界面
效果图: 运行图: 总结: 编写这个简单的用户登录界面,主要用到了以下的知识: java基础中的IO流的操作 用以读取.显示用户的信息 Android布局 线性布局和相对布局 数据的存储选在包 ...
- android实现第三方登录之QQ登录
首先,当然是在腾讯开放平台(http://open.qq.com/)注册成为开发者,然后获取APP ID 1.下载SDK http://wiki.open.qq.com/wiki/mobile/SDK ...
- Android之QQ登录界面
首先过程中碰到的几个问题: 1.对 EditText 进行自定义背景 2.运行时自动 EditText 自动获得焦点 3.在获得焦点时即清空 hint ,而不是输入后清空 4.清空按钮的出现时机(在得 ...
- Android开发之登录验证
最近在做一个小项目,项目开发中需要实现一个登录验证功能,具体的要求就是,在Android端输入用户名和密码,在服务器端验证MySQL数据库中是否有此用户,实现之前当然首要的是,如何使Android端的 ...
- Android --LoginActivity模板登录
Android Studio使用自带LoginActivity模板,制作登录界面 登录界面功能: 1.记住表单账户密码,并自动登录 //获得sp实例对象 sp = this.getSharedPref ...
- Java基础知识强化之网络编程笔记21:Android网络通信之 Android常用OAuth登录(获取令牌信息)
1. 首先我们去下载开发相关SDK(Android): 下载百度使用OAuth的SDK(Android),如下: 下载链接为:http://developer.baidu.com/wiki/index ...
随机推荐
- saltstack(七)返回值
一.自定义创建模块 在base目录下创建_modules目录,你自己编写的模块都可以存放在该目录下,当前目录结构下: 1 2 3 4 5 6 7 8 [root@localhost:]# tree - ...
- Apache Maven Cookbook(一)maven 使用命令创建、编译java项目
一.创建 使用命令创建项目分几步: 1.打开命令行窗口,比如cmd,把目录切换至想要创建项目地方. 2.执行如下命令: mvn archetype:generate -DgroupId=com.zua ...
- HDU 1325 拓扑排序
根据题目所给的3个不符合情况的条件,一个个判断图是否符合这3个条件即可 1.不能出现内部环,拓扑排序判断 2.不能有超过1个点的入度为0,因为只有一个树根 3.每个点最多一个入度 这里要注意的一点是这 ...
- android Fragment用法
Fragment常用的三个类:android.app.Fragment 主要用于定义Fragmentandroid.app.FragmentManager 主要用于在Activity中操作Fragme ...
- BP神经网络及其在教学质量评价中 的应用
本文学习笔记是自己的理解,如有错误的地方,请大家指正批评.共同进步.谢谢! 之前的教学质量评价,仅仅是通过对教学指标的简单处理.如求平均值或人为的给出各指标的权值来加权求和,其评价结果带有非常大主观性 ...
- 自由宣言--《I Have a Dream》(马丁.路德.金)
I Have a Dream by Martin Luther King, Jr. I am happy to join with you today in what will go down in ...
- ganglia收集hbase的metrics
Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于測量数以千计的节点.每台计算机都执行一个收集和发送度量数据(如处理器速度.内存使用量等)的名为 gmond 的守护进程.它将 ...
- jQuery 中ready与load事件
jquey有3种针对文档加载的方法: //document ready $(document).ready(function(){ //...代码... }) //document ready 简写 ...
- Ndk开发笔记
<pre name="code" class="cpp">ndk开发: 1.编译android本地程序的二种方法.q 2.安装ndk编译工具. 3. ...
- MyBatis 中#{}与${}绑定参数的区别
MyBatis 中#{}与${}绑定参数的区别: #{}将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #{id},如果传入的值是111,那么解析成sql时的值为o ...