【转】Android 纯代码化编码2_基本控件

来源:互联网 发布:汽车发动机网络教学 编辑:程序博客网 时间:2024/05/26 09:57

关于这个,我目前研究的控件还比较少,因为基本大操作方式都大同小异,搞清楚几个就差不多,至于其他,那只是时间问题

1.文本标签,文本输入框

 

Java代码  收藏代码
  1. TextView label = new TextView(this);  
  2. label.setText("名称:");  
  3. // 默认字体大小为16  
  4. label.setTextSize(16);  
  5. // 颜色默认为黑色  
  6. label.setTextColor(Color.BLACK);  
  7. // 创建输入框对象  
  8. EditText text = new EditText(this);  
  9. // 默认设置为单行显示  
  10. text.setSingleLine();  
  11. // 默认宽度为150  
  12. text.setWidth(150);  
  13. // 默认字体大小为16  
  14. text.setTextSize(16);  
  15. text.setTextColor(Color.BLACK);  
  16. // 如果配置了最大长度,那么进行设置  
  17. text.setFilters(new InputFilter[] { new InputFilter.LengthFilter(20) });  
  18. // 设置内容展示为密码形式  
  19. text.setTransformationMethod(new PasswordTransformationMethod());  

 

2.按钮

Java代码  收藏代码
  1. Button button = new Button(this);  
  2. button.setText("提交");  
  3. button.setTextSize(16);  
  4. button.setTextColor(Color.BLACK);  

 3.按钮事件
为按钮增加事件,我相信这很简单,但是在安卓中,这里就存在一个问题,安卓不允许是主线程中执行耗时操作(例如从服务器上下载一个东西到本地),如果使用会发生异常:

Can't create handler inside thread that has not called Looper.prepare()
所以只能使用新的线程去操作,但是在非UI线程中,操作UI线程的东西又会报异常,这个很迷惑了我一些时间,后来通过在网上查找资料,最终总结出一种较为方便的办法,使用AsyncTask

Java代码  收藏代码
  1. button.setOnClickListener(new OnClickListener() {  
  2.     public void onClick(View v) {  
  3.         // 定义一个异步任务处理对象,定义在下面  
  4.         ButtonAsyncTask asyncTask = new ButtonAsyncTask();  
  5.         // 执行这里的时候会依次调用下面的  
  6.         // onPreExecute(同步)--> doInBackground(异步)--> onPostExecute(同步)  
  7.         asyncTask.execute();  
  8.     }  
  9.   
  10. });  
  11.       
  12. /** 
  13.  * 按钮的异步执行机制 
  14.  *  
  15.  * @author pandong 
  16.  * @date 2012-7-18 下午2:50:31 
  17.  * @Copyright(c) SZKINGDOM 
  18.  */  
  19. private class ButtonAsyncTask extends AsyncTask<Void, Void, Object> {  
  20.     @Override  
  21.     protected void onPreExecute() {  
  22.         //在同步线程中执行的代码  
  23.     }  
  24.     @Override  
  25.     protected Object doInBackground(Void... params) {  
  26.         //在异步线程中执行某些代码  
  27.         return null;  
  28.     }  
  29.     @Override  
  30.     protected void onPostExecute(Object result) {  
  31.         //执行完后需要执行的代码  
  32.     }  
  33. }  
 
0 0
原创粉丝点击