猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

Android

別スレッドから画面を制御するhandlerの使い方

投稿日:2013年3月7日 更新日:

別スレッドから画面(layout)を制御するにはhandlerを使用します。

制御したい画面を持つアクティビティに、handerの宣言をします。
宣言したhandlerはsendMessageメソッドで呼び出します。

データはMessageオブジェクトを利用してやりとりします。

下記はひたすら1秒毎にカウントし、TextViewにその秒数を表示するだけのサンプルです。
ストップボタンもついていません :x001:

package com.test.handlertest;

import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;

public class HandlerTestActivity extends Activity {
    /** Called when the activity is first created. */

	private Timer timer=null;
	private int counter = 0;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
		timer = new Timer();
		timer.schedule(task,1000,1000);
    }
    
	private TimerTask task = new TimerTask() {
		
		@Override
		public void run() {
			counter += 1;
			handler.sendMessage(Message.obtain(handler,0,counter));
		}
	};
    private Handler handler = new Handler(){
    	public void handleMessage(Message msg){
    		TextView tv = (TextView)findViewById(R.id.textview1);
    		tv.setText((String.valueOf(msg.obj)));
    	}
    };
}

Gooleアドセンス用336

Gooleアドセンス用336

-Android
-

執筆者:

関連記事

layoutのxmlに配置したListViewをアクティビティで操作する

ListViewの操作にはadapterを使用します。 INDEX1 xml2 アクティビティ3 単純な呼び出し4 結果を受信する呼び出し xml ListViewにアクセスできるようにidを付けてお …

音声認識と音声合成(Text-To-Speech)

INDEX1 音声認識2 音声合成(Text-To-Speech)3 サンプル 音声認識 音声認識で注意しなくてはいけないのは、何語で認識させるかです。 つまり英語として認識させるか、日本語として認識 …

layoutのxmlに配置したボタンにクリックイベントを追加する

ボタンなどのビューは、コードで記述することもできますが、 やはりres/layout/xxx.xmlで作成するのが一般的です。 xmlで作成したビューに、はアクティビティのonCreateでリスナーを …

アクティビティ間の画面遷移

アクティビティから別のアクティビティを呼びだすと、新しいアクティビティは上に重ねられた状態になり、今まで使用していたアクティビティは停止します。 そして新しいアクティビティが終了すると、元のアクティビ …

ListView(単一行)

各リストの中身が単一行の場合のサンプルです。 TestActivity.java package com.nekotype.test; import android.app.Activity; imp …