我一般会在主线程中,实例化一个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:hint="提示文字" 即可。
android:gravity="center";
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文件的视图模式无法正常显示
如对本文有疑问, 点击进行留言回复!!
Codeforces C. A Cookie for You (模拟 / 分类 / 贪心) (Round #654 Div.2)
DialogFragment弹窗(带黑色透明背景和不带黑色透明背景)
网友评论