欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android基础-界面开发注意事项

程序员文章站 2022-03-08 20:34:46
做安卓开发时一定要注意,主线程不能更改UI界面,如果出现程序运行时崩溃的情况,如果没有明显的语法错误,请检查自己的进程是否出现冲突,崩溃。如果有与后台的连接,即请求向服务器发送请求的时尤其需要注意,或出现没有报错,但就是网络请求这段代码不会执行,这种情况下,如果设置的参数或者其他地方没有什么问题,但 ......

做安卓开发时一定要注意,主线程不能更改UI界面,如果出现程序运行时崩溃的情况,如果没有明显的语法错误,请检查自己的进程是否出现冲突,崩溃。如果有与后台的连接,即请求向服务器发送请求的时尤其需要注意,或出现没有报错,但就是网络请求这段代码不会执行,这种情况下,如果设置的参数或者其他地方没有什么问题,但就是网络连接这段代码不执行,这个时候就需要检查自己的进程之间是否冲突。

我一般会在主线程中,实例化一个Thread类,开启另一个线程,然后在这里面进行操作,并在得到数据之后利用handle进行值的传递。具体的用法如下:

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

private Handler myHandler =new Handler(){
        public void handleMessage(Message msg){
            super.handleMessage(msg);
            switch (msg.what){
                case 1:
                   .....
                   break;
            }
        }
    };

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
        
        ......
        
        new Thread(new Runnable() {
            @Override
            public void run() {
            ......
            Message msg = new Message();
            msg.what = 1;
            msg.obj = ...(传递的值);
            myHandler.sendMesage(msg);
            
        //如果没有要传递的数值,只是需要根据状态进行响应的操作,可以直接用sendEmptyMessageDelayed();第一个参数相当于msg.what,用于状态的判断选择。第二个参数是延迟时间,就是这条语句延迟多长时间执行(毫秒)。
        myHandler.sendEmptyMessageDelayed(1,0);
        
        
        //如果直接在进程中更改UI界面,没有反应的话,试试在语句的前后用Looper.prepare();Looper.loop();包裹一下,例如:
        Looper.prepare();
        Toast.makeText(getContext,"获取数据成功",Toast.LENGTH_SHORT).show();
        Looper.loop();
        
            }
        //如果进程没有反应的话,首先检查是否设置了进程启动,即在实例化类的时候写入.start();启动
        }).start();
    }

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文件的视图模式无法正常显示