根据老罗视频学习总结。
在TextView项目的基础上增加Menu按钮“EditText练习”选项,点击后弹出新的EditDemoActivity,在新的Activity里做EditText练习。
EditDemoActivity关联的布局文件是editdemoactivity.xml文件,放置一个EditText控件和一个Button控件。
如下:
EditDemoActivity.java内容如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//设置关联布局文件
setContentView(R.layout.editdemoactivity);
editText = (EditText)findViewById(R.id.editText1);
button = (Button)findViewById(R.id.button1);
//设置button控件的点击事件
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
int randId = 1+ new Random().nextInt(9);//随机数是从0开始产生的,所以要加1,0到8的随机数
try {
//获取这个图像的域
Field field = R.drawable.class.getDeclaredField("face" + randId);
//获取资源ID
int resourceId = Integer.parseInt(field.get(null).toString());
//在Android中要显示图片信息,必须使用Bitmap位图对象来加载
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resourceId);
//用图片代替文字
ImageSpan imageSpan = new ImageSpan(EditDemoActivity.this, bitmap);
//
SpannableString spannableString = new SpannableString("face");
spannableString.setSpan(imageSpan, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
editText.append(spannableString);
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
在布局文件中,通过属性android:digits;或者android:inputType;来规范输入EditText的格式。
//规范只能输入0-9的数字
//规范只能输入小写字母
//只能输入数字
//输入邮件
//输入浮点数
android:inputType类型见这个链接:http://blog.csdn.net/chaod5659/article/details/17117193
就通过属性来设置输入的字符类型。
java中内容如下:
button2 = (Button)findViewById(R.id.button2);
editText2 = (EditText)findViewById(R.id.editText2);
button2.setOnClickListener(new View.OnClickListener() {
//设置监听器
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String str = editText2.getText().toString();
//trim函数,移除字符串两边的空白字符或者其他预定义字符
if(str==null||str.trim().equals("")){
editText2.setError("请输入内容");
}
}
});
效果图如下:
autoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.autotext);
String[] autoStrings = new String[]{"联合国","联合国安理会","联合国五个常任理会","Google","Google Map"};
//第二个参数表示适配器的下拉风格
ArrayAdapter adapter = new ArrayAdapter(AutoCompleteActivity.this, android.R.layout.simple_dropdown_item_1line,autoStrings);
autoCompleteTextView.setAdapter(adapter);
multiAutoCompleteTextView = (MultiAutoCompleteTextView)findViewById(R.id.multext);
multiAutoCompleteTextView.setAdapter(adapter);
//CommaTokenizer内部类
multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
效果:
第二个逗号必须是英文逗号,否则不能实现多个自动补全