设为首页 收藏本站 662p开源网
开启辅助访问 切换到宽版

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

切换风格 立即注册 找回密码

安卓教程网

发表于 2018-4-27 15:35:19 | 显示全部楼层 |阅读模式
更多
android.662p.com" target="_blank" class="relatedlink">安卓开发时一定要注意,主线程不能更改UI界面,如果出现程序运行时崩溃的情况,如果没有明显的语法错误,请检查自己的进程是否出现冲突,崩溃。如果有与后台的连接,即请求向服务器发送请求的时尤其需要注意,或出现没有报错,但就是网络请求这段代码不会执行,这种情况下,如果设置的参数或者其他地方没有什么问题,但就是网络连接这段代码不执行,这个时候就需要检查自己的进程之间是否冲突。
我一般会在主线程中,实例化一个Thread类,开启另一个线程,然后在这里面进行操作,并在得到数据之后利用handle进行值的传递。具体的用法如下:

  1. //定义一个handler,用于线程之间数据的传递,如果定义全局变量的话有局限性,因为进程之间是异步加载,往往会出现,页面显示数据时,还没有捕获到数据,所以建议使用handler进行数据的传递

  2. private Handler myHandler =new Handler(){
  3.         public void handleMessage(Message msg){
  4.             super.handleMessage(msg);
  5.             Switch (msg.what){
  6.                 case 1:
  7.                    .....
  8.                    break;
  9.             }
  10.         }
  11.     };

  12. protected void onCreate(Bundle savedInstanceState) {
  13.         super.onCreate(savedInstanceState);
  14.         setContentView(R.layout.activity_test);
  15.         
  16.         ......
  17.         
  18.         new Thread(new Runnable() {
  19.             @Override
  20.             public void run() {
  21.             ......
  22.             Message msg = new Message();
  23.             msg.what = 1;
  24.             msg.obj = ...(传递的值);
  25.             myHandler.sendMesage(msg);
  26.             
  27.         //如果没有要传递的数值,只是需要根据状态进行响应的操作,可以直接用sendEmptyMessageDelayed();第一个参数相当于msg.what,用于状态的判断选择。第二个参数是延迟时间,就是这条语句延迟多长时间执行(毫秒)。
  28.         myHandler.sendEmptyMessageDelayed(1,0);
  29.         
  30.         
  31.         //如果直接在进程中更改UI界面,没有反应的话,试试在语句的前后用Looper.prepare();Looper.loop();包裹一下,例如:
  32.         Looper.prepare();
  33.         Toast.makeText(getContext,"获取数据成功",Toast.LENGTH_SHORT).show();
  34.         Looper.loop();
  35.         
  36.             }
  37.         //如果进程没有反应的话,首先检查是否设置了进程启动,即在实例化类的时候写入.start();启动
  38.         }).start();
  39.     }
复制代码
android 输入框提示文字点击消失
在输入框中加入属性 android:hint="提示文字" 即可。
android 让TexiView里面的文字居中显示android:gravity="center";
Activity_xml视图模式不显示以及错误提示
Error:Error: 'B' is not a valid file-based resource name character: File-based resource names must contain only lowercase a-z, 0-9, or underscore
此类错误提示,主要是项目中有的文件名,不符合该系统的命名规范,就像是我的这个错误提示中,就有在这个文件名中不应该有大写字母,而我的出现了大写的字母"B",所以报错,导致Activity_xml文件的视图模式无法正常显示


您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Archiver|手机版|小黑屋|安卓教程网 ( 粤ICP备12089784号  

GMT+8, 2018-8-21 14:30 , Processed in 1.118509 second(s), 46 queries .

Powered by Discuz X3.1

© 2001-2013 IOS教程网

快速回复 返回顶部 返回列表