zoukankan      html  css  js  c++  java
  • Android中倒计时代码

    布局:

    maina.xml

    <DigitalClock
            android:id="@+id/myClock"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_margin="10dp"
            android:textSize="30sp" />
    
        <TextView
            android:id="@+id/text_select"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/myClock"
            android:layout_centerHorizontal="true"
            android:text="@string/text_select"
            android:textSize="20sp" />
        
    	<EditText android:id="@+id/minute"
    	    android:layout_width="60dp"
    	    android:layout_height="80dp"
    	    android:layout_below="@id/text_select"
    	    android:layout_alignLeft="@id/myClock"
    	    android:layout_marginTop="20dp"
    		android:inputType="number"
    		android:gravity="center"
    	    />
    	
    	<EditText android:id="@+id/second"
    	    android:layout_width="60dp"
    	    android:layout_height="80dp"
    	    android:layout_below="@id/text_select"
    		android:layout_toRightOf="@id/minute"
    		android:layout_marginTop="20dp"	    
    		android:inputType="number"
    		android:gravity="center"
    	    />
    
        <Button
            android:id="@+id/button_start"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:gravity="center"
            android:padding="10dp"
            android:text="@string/myButtonText"
            android:textSize="30sp" />


    start.xml

    <TextView android:id="@+id/myTime"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_margin="30dp"
            android:textSize="100sp"
            android:textColor="#FF0000"
            android:gravity="center"
            android:textStyle="bold" />


    MainActivity.java

    public class MainActivity extends Activity {
    
    	Button startButton;
    	EditText minuteText;
    	EditText secondText;
    	int minute;
    	int second;
    	
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		requestWindowFeature(Window.FEATURE_NO_TITLE);
    		setContentView(R.layout.main);
    
    		startButton = (Button) findViewById(R.id.button_start);
    		minuteText = (EditText)findViewById(R.id.minute);
    		secondText = (EditText)findViewById(R.id.second);
    		
    		startButton.setOnClickListener(new OnClickListener() {
    
    			@Override
    			public void onClick(View v) {
    				if (!minuteText.getText().toString().equals("")) {
    					minute = Integer.parseInt(minuteText.getText().toString());
    				}
    				if (!secondText.getText().toString().equals("")) {
    					second = Integer.parseInt(secondText.getText().toString());
    				}
    				if (minute != 0 || second != 0) {
    					System.out.println(minute+":"+second);
    					
    					ArrayList<Integer> list = new ArrayList<Integer>();
    					list.add(minute);
    					list.add(second);
    					
    					Intent intent = new Intent();
    					intent.setAction("com.example.mytime.StartActivity");
    					
    					intent.putIntegerArrayListExtra("times", list);
    					startActivity(intent);
    				}
    			}
    		});
    	}
    	
    	@Override
    	protected void onResume() {
    		// TODO Auto-generated method stub
    		minute = 0;
    		second = 0;
    		super.onResume();
    	}
    }

    StartActivity.java

    public class StartActivity extends Activity{
    
    	static int minute = -1;
    	static int second = -1;
    	final static String tag = "tag";
    	TextView timeView;
    	Timer timer;
    	TimerTask  timerTask;
    	Handler handler = new Handler(){
    		public void handleMessage(Message msg) {
    			System.out.println("handle!");
    			if (minute == 0) {
    				if (second == 0) {
    					timeView.setText("Time out !");
    					if (timer != null) {
    						timer.cancel();
    						timer = null;
    					}
    					if (timerTask != null) {
    						timerTask = null;
    					}
    				}else {
    					second--;
    					if (second >= 10) {
    						timeView.setText("0"+minute + ":" + second);
    					}else {
    						timeView.setText("0"+minute + ":0" + second);
    					}
    				}
    			}else {
    				if (second == 0) {
    					second =59;
    					minute--;
    					if (minute >= 10) {
    						timeView.setText(minute + ":" + second);
    					}else {
    						timeView.setText("0"+minute + ":" + second);
    					}
    				}else {
    					second--;
    					if (second >= 10) {
    						if (minute >= 10) {
    							timeView.setText(minute + ":" + second);
    						}else {
    							timeView.setText("0"+minute + ":" + second);
    						}
    					}else {
    						if (minute >= 10) {
    							timeView.setText(minute + ":0" + second);
    						}else {
    							timeView.setText("0"+minute + ":0" + second);
    						}
    					}
    				}
    			}
    		};
    	};
    	
    	
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		Log.v(tag, "log---------->onCreate!");
    		requestWindowFeature(Window.FEATURE_NO_TITLE);
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.start);
    		timeView = (TextView)findViewById(R.id.myTime);
    		
    		if (minute == -1 && second == -1) {
    			Intent intent = getIntent();
    			ArrayList<Integer> times = intent.getIntegerArrayListExtra("times");
    			minute = times.get(0);
    			second = times.get(1);
    		}
    		
    		timeView.setText(minute + ":" + second);
    		
    		timerTask = new TimerTask() {
    			
    			@Override
    			public void run() {
    				Message msg = new Message();
    				msg.what = 0;
    				handler.sendMessage(msg);
    			}
    		};
    		
    		timer = new Timer();
    		timer.schedule(timerTask,0,1000);
    		
    	}
    	
    	@Override
    	protected void onDestroy() {
    		Log.v(tag, "log---------->onDestroy!");
    		if (timer != null) {
    			timer.cancel();
    			timer = null;
    		}
    		if (timerTask != null) {
    			timerTask = null;
    		}
    		minute = -1;
    		second = -1;
    		super.onDestroy();
    	}
    	
    	@Override
    	protected void onStart() {
    		Log.v(tag, "log---------->onStart!");
    		super.onStart();
    	}
    	
    	@Override
    	protected void onStop() {
    		Log.v(tag, "log---------->onStop!");
    		super.onStop();
    	}
    
    	@Override
    	protected void onResume() {
    		Log.v(tag, "log---------->onResume!");
    		super.onResume();
    	}
    	
    	@Override
    	protected void onRestart() {
    		Log.v(tag, "log---------->onRestart!");
    		super.onRestart();
    	}
    	
    	@Override
    	protected void onPause() {
    		Log.v(tag, "log---------->onPause!");
    		super.onPause();
    	}
    	
    }


    本文本详细源码文件请访问:http://download.csdn.net/detail/chrp99/5646983

    更多源码请访问:http://download.csdn.net/user/chrp99/uploads


     

  • 相关阅读:
    winform 通过左右键,或enter键做类似Tab键的功能
    向表中插入查询结果
    创建Oracle job的一些注意事项
    多数据库独立主机的配置
    图形码验证
    JavaScript中的trycatchfinally
    ASP.Net生成后台脚本的问题的解决办法
    10个你未必知道的CSS技巧
    学习JQuery的$.Ready()与OnLoad事件比较[转]
    风雨20年:我所积累的20条编程经验[csdn]
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3155614.html
Copyright © 2011-2022 走看看