android按钮点击时间倒数

直接上代码吧,xml就不上了,就是一个测试demo

package com.example.justtest;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity implements
		android.view.View.OnClickListener {
	Button btn1;
	Button btn2;
	EditText editText1;
	int time = 60;
	boolean terminateCount = false;
	private Handler mHandler;
	private HandlerThread mHandlerThread;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		btn1 = (Button) this.findViewById(R.id.button1);
		btn2 = (Button) this.findViewById(R.id.button2);
		editText1 = (EditText) this.findViewById(R.id.editText1);
		btn1.setOnClickListener(this);
		btn2.setOnClickListener(this);
		HandlerThread mHandlerThread = new HandlerThread("count", 5);
		mHandlerThread.start();
		mHandler = new Handler(mHandlerThread.getLooper());
		
	}

	Thread oneSecondThread = new Thread(new Runnable() {

		@Override
		public void run() {
			// TODO Auto-generated method stub
			try {
				if (time > 0 && !terminateCount) {
					System.out.println("time = " + time);
					time--;
					Thread.sleep(1000);
					Message msg = new Message();
					msg.arg1 = time;
					uiHandler.sendMessage(msg);
				}
			} catch (Exception e) {
				// TODO: handle exception
			}

		}
	});

	Handler uiHandler = new Handler(){

		@Override
		public void handleMessage(Message msg) {
			// TODO Auto-generated method stub
			super.handleMessage(msg);
			if (time > 0 && !terminateCount) {
				btn1.setText(msg.arg1 + "s");
				mHandler.post(oneSecondThread);
			}else{
				btn1.setText("recount");
				btn1.setEnabled(true);
			}
		}
		
	};

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	
	@Override
	public void onClick(View view) {
		// TODO Auto-generated method stub
		if (view == btn1) {
			System.out.println("btn1");
			time = 10;
			terminateCount = false;
			btn1.setEnabled(false);
			mHandler.post(oneSecondThread);
		} else if (view == btn2) {
			terminateCount = true;
			time = 0;
			btn1.setEnabled(true);
			Toast.makeText(this, "stop", Toast.LENGTH_SHORT).show();
		}

	}

}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 获取当前时间可以使用Java中的Date类和SimpleDateFormat类,将时间转换成指定格式的字符串。例如: ``` Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentTime = sdf.format(date); ``` 其中,"yyyy-MM-dd HH:mm:ss"是指定时间格式,你可以根据自己的需求进行修改。 对于按钮点击倒计时,可以使用CountDownTimer类来实现。例如: ``` new CountDownTimer(30000, 1000) { public void onTick(long millisUntilFinished) { button.setText("倒计时" + millisUntilFinished / 1000 + "秒"); } public void onFinish() { button.setText("倒计时结束"); } }.start(); ``` 其中,第一个参数是倒计时的总时间,单位是毫秒;第二个参数是倒计时的时间间隔,单位也是毫秒。在onTick()方法中更新按钮的显示,直到倒计时结束后,在onFinish()方法中更新按钮的显示。 ### 回答2: 实现android点击按钮获取时间,可以通过以下步骤实现: 1. 在Android布局文件中,添加一个按钮组件(Button)和一个文本框组件(TextView)来显示时间。 ```xml <Button android:id="@+id/btn_get_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取时间" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" /> ``` 2. 在Activity中,找到按钮和文本框组件,并设置点击事件监听器。 ```java Button btnGetTime = findViewById(R.id.btn_get_time); TextView tvTime = findViewById(R.id.tv_time); btnGetTime.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 获取当前时间 String currentTime = DateFormat.getDateTimeInstance().format(new Date()); // 在文本框中显示时间 tvTime.setText(currentTime); } }); ``` 实现android按钮点击时间倒数,可以通过以下步骤实现: 1. 在Android布局文件中,添加一个按钮组件(Button)和一个文本框组件(TextView)来显示倒计时。 ```xml <Button android:id="@+id/btn_start_countdown" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始倒计时" /> <TextView android:id="@+id/tv_countdown" android:layout_width="wrap_content" android:layout_height="wrap_content" /> ``` 2. 在Activity中,找到按钮和文本框组件,并设置点击事件监听器。 ```java Button btnStartCountdown = findViewById(R.id.btn_start_countdown); TextView tvCountdown = findViewById(R.id.tv_countdown); btnStartCountdown.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 倒计时时长,单位为毫秒 long countdownTime = 5000; // 创建倒计时器 new CountDownTimer(countdownTime, 1000) { @Override public void onTick(long millisUntilFinished) { // 更新倒计时时间 tvCountdown.setText(String.valueOf(millisUntilFinished / 1000)); } @Override public void onFinish() { // 倒计时结束时的操作 tvCountdown.setText("倒计时结束"); } }.start(); } }); ``` 以上是实现Android点击按钮获取时间按钮点击时间倒数的基本思路和示例代码,根据实际需求可以进行相应的调整和扩展。 ### 回答3: 在Android开发中,实现点击按钮获取时间按钮点击时间倒数的功能是比较简单的。 首先,我们可以使用Java的Date类来获取当前时间。在按钮点击事件中,可以添加以下代码来获取当前时间并进行相关操作: ``` // 获取当前时间 Date currentTime = new Date(); // 格式化时间显示 SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss"); String formattedTime = formatter.format(currentTime); // 将时间显示在一个文本框中 textView.setText(formattedTime); ``` 这样,当按钮点击时,就会在文本框中显示当前的时间。 接下来,实现按钮点击时间倒数的功能,可以使用Android的CountDownTimer类来实现。首先,在Activity的类中,创建一个CountDownTimer的实例,并重写其onTick和onFinish方法,如下所示: ``` CountDownTimer countDownTimer = new CountDownTimer(30000, 1000) { public void onTick(long millisUntilFinished) { // 在倒计时过程中,每秒都会调用该方法 textView.setText("剩余时间:" + millisUntilFinished / 1000 + "秒"); } public void onFinish() { // 倒计时结束时调用该方法 textView.setText("倒计时已结束"); } }; ``` 然后,在按钮点击事件中,启动倒计时: ``` countDownTimer.start() ``` 这样,当按钮点击时,就会启动倒计时,并在每秒更新一次文本框中的显示,直到倒计时结束,文本框中会显示"倒计时已结束"。 通过以上步骤,就可以实现Android点击按钮获取时间按钮点击时间倒数的功能了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值