編輯:關於Android編程
很多時候我們需要對每個組件或者所有的UI線程要去負責View的創建並且維護它,例如更新冒個TextView的顯示,都必須在主
線程中去做,我們不能直接在UI線程中去創建子線程,要利用消息機制:handler
本篇博客將帶大家走進我們熟悉的Handler,順帶寫了一個例子來驗證Handler的消息機制,Handler通過對子線程的處理,實
現對UI的更新等操作
private TextView time; private Handler handler = new Handler(){ public void handleMessage(Message msg) { if(msg.what==Reflsh){ time.setText(String.valueOf(msg.obj)); } super.handleMessage(msg); }; }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); text = getResources().getStringArray(R.array.array); for(int i=0;imap = new HashMap (); map.put("img", icon[i]); map.put("name", text[i]); list.add(map); } adapter = new SimpleAdapter(getActivity(), list, R.layout.log, new String[]{"img","name"}, new int []{R.id.g_icon,R.id.g_text}); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_shouye, container, false) ; gridview = (GridView)view.findViewById(R.id.gridView); time = (TextView)view.findViewById(R.id.time);//時間 ImageView icon = (ImageView)view.findViewById(R.id.icon);//頭像 TextView name = (TextView)view.findViewById(R.id.name);//昵稱 // File file = new File(Environment.getExternalStorageDirectory()+"/"+"weiinfo") ; BufferedReader reader = null ; String line = null ; try { reader = new BufferedReader(new FileReader(file)) ; line = reader.readLine() ; } catch (Exception e) { e.printStackTrace(); } data = line.split("\\*") ; Picasso.with(getActivity().getApplicationContext()).load(data[5]).into(icon); name.setText(data[0]); new Thread(new Runnable() { @Override public void run() { try { while(true){ Thread.sleep(1000); Message msg = new Message(); msg.what = Reflsh; msg.obj = new Date(System.currentTimeMillis()).toLocaleString(); Log.d("XXXXXXXXXXXXXX", msg.obj.toString()); handler.sendMessage(msg); } } catch (Exception e) { Log.d("異常", ""+e); } } }).start();
消息機制打印結果:
一直到關閉這個應用程序為止,打印結果才會停止,這就是Handler的消息機制了~
先看效果圖:1.顯示三個頁面的Activity 用view pager去加載三個fragment實現,控制點點點的切換,監聽view pager的切換,控制fragmen
上一篇講了VLC整個程序的模塊劃分和界面主要使用的技術,今天分析一下VLC程序初始化過程,主要是初始化界面、加載解碼庫的操作。今天主要分析一下org.videolan.v
首先,讓我們先看下實現的截圖:當有錄音文件存在時,會顯示在下面的ListView當中。下面給出實現的完整代碼:1.主程序代碼package irdc.ex07_11;im
POI搜索有三種方式,根據范圍和檢索詞發起范圍檢索poiSearchInbounds,城市poi檢索poiSearchInCity,周邊檢索poiSearchNearBy