`

android中的handler的使用方法

阅读更多

HandlerActivity.java

package txlong.handler;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;

public class HandlerActivity extends Activity {
	private Button start, end, show;
	private ProgressBar progress;
	private Handler handler = new Handler();
	private int tmp;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		start = (Button) findViewById(R.id.start);
		end = (Button) findViewById(R.id.end);
		show = (Button) findViewById(R.id.show);
		progress = (ProgressBar) findViewById(R.id.progress);

		start.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				handler.post(updateDate);
			}
		});

		end.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				handler.removeCallbacks(updateDate);
			}
		});

		show.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				progress.setVisibility(View.VISIBLE);
				progress.setProgress(0);
				handler.post(greate);
			}
		});
	}

	Runnable updateDate = new Runnable() {
		@Override
		public void run() {
			Log.i("flag", "again");
			handler.postDelayed(updateDate, 3000);
		}
	};

	Runnable greate = new Runnable() {
		@Override
		public void run() {
			if (progress.getProgress() < 100) {
				tmp += 10;
				progress.setProgress(tmp);
				progress.setSecondaryProgress(tmp + 10);
				handler.postDelayed(greate, 800);
			} else {
				handler.removeCallbacks(greate);
				progress.setVisibility(View.GONE);
				tmp = 0;
			}
		}
	};
}

 main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<ProgressBar android:id="@+id/progress"
	style="?android:attr/progressBarStyleHorizontal"
	android:layout_width="200dip"
	android:layout_height="wrap_content"
	android:visibility="gone"/>


<Button	 android:id="@+id/start"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="start"
    />
    
<Button  android:id="@+id/end"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="end"
    />
    
<Button  android:id="@+id/show"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="show"
    />
</LinearLayout>
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics