Android 学习ui之EditText 数据验证及其qq表情输入

大家好 我也是刚开始学习Android时间不久,但是原来一直是java开发,所有Android现在学习起来比较简单,最近有一些想法就是写自己的博客,和志同道合的朋友一起成长一起学习,大家监督我能坚持多久,其实我有这个想法的已经很久了 但是一直没有坚持下来,希望以后无论多忙都能坚持写点自己的东西吧, 如果是自己敲些的demo就直接上代码了但是仅仅是关键代码,如果是初学者不能运行出结果可以加我的qq:924160580要个项目. 如果是自己对一些理解的东西再进行描述.


xml代码

<?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:orientation="vertical" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="使用android:digits属性(输入数字)" >
    </TextView>

    <EditText
        android:id="@+id/num"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:digits="0123456789" >
    </EditText>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="使用android:digits属性(输入26个小写字母)" >
    </TextView>

    <EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:digits="qwertyuiopasdfghjklzxcvbnm" >
    </EditText>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="使用android:inputType属性(输入数字)" >
    </TextView>

    <EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:inputType="number|textCapCharacters" >
    </EditText>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="使用android:inputType属性(输入Email)" >
    </TextView>

    <EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:inputType="textEmailAddress" >
    </EditText>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="输入qq表情" />

    <EditText
        android:id="@+id/etqq"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp" />

    <Button
        android:id="@+id/btnqq"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="添加qq表情" />
	
</LinearLayout>

后台java代码

package com.example.demo.baseui;

import java.lang.reflect.Field;
import java.util.Random;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ImageSpan;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.example.demo.R;

public class MyEditText extends Activity {

	private EditText num=null;
	private EditText etqq = null;
	private Button btnqq= null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.bui_edittext_1);
		num = (EditText) findViewById(R.id.num);
		num.setOnFocusChangeListener(new View.OnFocusChangeListener() {
			/**
			 * hasFocus 获取到焦点为true  失去焦点false
			 */
			@Override
			public void onFocusChange(View v, boolean hasFocus) {
				Log.i("Test", hasFocus+"");  
				if(hasFocus){
					num.setText("");
				}else {
					String value = num.getText().toString();
					if (value == null || value.trim().equals("")) {
						num.setError("请输入内容!!");
						return;
					}
				}
				
			}
		});
		etqq=(EditText) findViewById(R.id.etqq);
		btnqq = (Button) findViewById(R.id.btnqq);
		btnqq.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				int randomId = 1 + new Random().nextInt(9);
				try {
					Field field = R.drawable.class.getDeclaredField("face"
							+ randomId);
					int resourceId = Integer.parseInt(field.get(null).toString());
					// 在android中要显示图片信息,必须使用Bitmap位图的对象来装载
					Bitmap bitmap = BitmapFactory.decodeResource(
							getResources(), resourceId);
					ImageSpan imageSpan = new ImageSpan(MyEditText.this, bitmap);
					SpannableString spannableString = new SpannableString(
							"face");
					spannableString.setSpan(imageSpan, 0, 4,
							Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
					etqq.append(spannableString);

				} catch (NoSuchFieldException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}catch (NumberFormatException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IllegalArgumentException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IllegalAccessException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值