知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
.Net程序員玩轉(zhuǎn)Android開發(fā)
發(fā)表時(shí)間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):49
在android開辟中,如不雅在一個(gè)線程中想更新主界面中控件顯示的數(shù)據(jù),直接給主界面控件賦值就會(huì)出現(xiàn)異常,android中為了安然起見,是不許可在線程中更新界面控件的數(shù)據(jù),碰到這種情況,我們可以應(yīng)用Handler. Handler就是處理界面和線程間的消息傳遞,通信的組件。下面我們演示下handler處理具體的兩種辦法,下面的┞封個(gè)列子經(jīng)由過程點(diǎn)擊不合按鈕展示handler.post和handler.sendmsg兩個(gè)傳遞消息的辦法。
[img]http://img.my.csdn.net/uploads/201501/04/1420362194_1633.png
1. Handler.Post
創(chuàng)建一個(gè)handler對(duì)象和Runnable對(duì)象,經(jīng)由過程handler.post(new Runnable(){});處理來更新界面中的textview的數(shù)據(jù)
2.Handler.sendMessage
這個(gè)例子中,我們創(chuàng)建一個(gè)employee員工類,單擊按鈕的時(shí)刻,顯示員工的信息,經(jīng)由過程handler.sendmessage來傳遞消息和參數(shù)進(jìn)行處理
全部代碼
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textViewMsg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> <Button android:id="@+id/btnpost" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="handler post" /> <Button android:id="@+id/btnmsg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="handler message" /> </LinearLayout>
package com.example.helloword; import android.R.string; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.SimpleAdapter; import android.widget.TextView; public class HandlerActivity extends Activity { private TextView tv; private Button btnpost; private Button btnmsg; private Handler handler=new Handler();//post處理handler //sendmsg處理handler private Handler handlerTwo=new Handler(){ public void handleMessage(Message msg) { switch (msg.what) { case 0: tv.setText("姓名:"+((employee)msg.obj).name); break; } } }; protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.handlerlayout); tv=(TextView)findViewById(R.id.textViewMsg); btnpost=(Button)findViewById(R.id.btnpost); btnmsg=(Button)findViewById(R.id.btnmsg); btnpost.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub Thread thread=new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub handler.post(runOne); } } ); thread.start(); } }); btnmsg.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub Thread thread=new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub Message msg=new Message(); msg.arg1=1; employee employeeone=new employee(); employeeone.name="員工1"; employeeone.age=20; msg.obj=employeeone; msg.what=0; handlerTwo.sendMessage(msg); } } ); thread.start(); } }); } Runnable runOne=new Runnable(){ @Override public void run() { // TODO Auto-generated method stub tv.setText("正在履行handler post"); } }; public class employee { public String name; public int age; } }
相關(guān)案例查看更多
相關(guān)閱讀
- APP
- 云南網(wǎng)絡(luò)營(yíng)銷顧問
- 云南網(wǎng)絡(luò)推廣
- 昆明小程序開發(fā)
- 云南建站公司
- 小程序定制
- 楚雄網(wǎng)站建設(shè)公司
- 微信分銷系統(tǒng)
- 云南企業(yè)網(wǎng)站
- 網(wǎng)站建設(shè)案例
- 云南網(wǎng)站建設(shè)案例
- 網(wǎng)絡(luò)公司哪家好
- 云南網(wǎng)站建設(shè)招商
- 網(wǎng)站優(yōu)化
- 云南網(wǎng)站建設(shè)
- 手機(jī)網(wǎng)站建設(shè)
- 汽車報(bào)廢管理系統(tǒng)
- 昆明網(wǎng)站設(shè)計(jì)
- 云南小程序開發(fā)
- 云南網(wǎng)站建設(shè)價(jià)格
- 云南建設(shè)廳網(wǎng)站
- 昆明做網(wǎng)站
- 軟件定制公司
- 微信小程序開發(fā)入門課程
- 網(wǎng)站建設(shè)
- web學(xué)習(xí)路線
- 汽車報(bào)廢軟件
- 云南小程序開發(fā)費(fèi)用
- 云南網(wǎng)站建設(shè)報(bào)價(jià)
- 網(wǎng)站開發(fā)