android 날짜 컨트롤 대화 상자

6041 단어 android
가끔 은 제 가 사용 하 는 날짜 컨트롤 을 대화 형식 으로 표현 해 야 할 때 가 있 습 니 다. 다음 부터 시작 하 겠 습 니 다.
 
1. android - time 만 들 기
2. 가방 이름: com. app
3. 메 인 액 티 비 티 이름: MainActivity
 
4. 레이아웃 파일: main. xml
 
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>
 
5. activity 코드
 
  package com.app;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

import com.app.R;
import com.app.view.DatePickText;



import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;

public class MainActivity extends Activity {
	
	public static final int DATE = 0;
	public static final int TIME = 1;
	
	private final Calendar cal = Calendar
	.getInstance(Locale.SIMPLIFIED_CHINESE);
	private SimpleDateFormat df;
	
	private TextView edit ;
	private Button button1 ;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        df = new SimpleDateFormat();
        
        this.edit = (TextView) this.findViewById(R.id.tv) ;
      
        this.button1 = (Button) this.findViewById(R.id.button1) ;
     
		this.button1.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				buildDateOrTimeDialog(MainActivity.this) ;
			}
			
		}) ;
        
    }
    
    private void buildDateOrTimeDialog(Context context) {
		df = new SimpleDateFormat("HH:mm:SS");
		switch (444) {
		case DATE:
			date: new DatePickerDialog(context, listener,
					cal.get(Calendar.YEAR),

					cal.get(Calendar.MONTH),

					cal.get(Calendar.DAY_OF_MONTH)

			).show();
			break;

		case TIME:
			System.out.println("----------time---------------");
			new TimePickerDialog(context, timeListen,
					cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE),
					true).show();
			break;
		default:
			new DatePickerDialog(context, listener, cal.get(Calendar.YEAR),
			cal.get(Calendar.MONTH),
			cal.get(Calendar.DAY_OF_MONTH)

			).show();

		}

	}
    
    
    
    private DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() { //

		@Override
		public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {

			cal.set(Calendar.YEAR, arg1);
			cal.set(Calendar.MONTH, arg2);
			cal.set(Calendar.DAY_OF_MONTH, arg3);

			updateDate();

		}

	};
	
	
	
	
	private void updateDate() {

		edit.setText(df.format(cal.getTime()));

	}

	TimePickerDialog.OnTimeSetListener timeListen = new TimePickerDialog.OnTimeSetListener() {

		//  DatePickerDialog  

		@Override
		public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
			cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
			cal.set(Calendar.MINUTE, minute);
			cal.set(Calendar.SECOND, cal.get(Calendar.SECOND));
			updateTimes();
		}

	};

	//     TextView   
	private void updateTimes() {

		edit.setText(df.format(cal.getTime()));
	}
	
    
}
 
 
 
  설명:
 
 그 속 SimpleDateFormat df = new SimpleDateFormat("HH:mm:SS"); //가 져 오 는 시간의 모양 정의
 
 
switch (444) {
		case DATE:
			date: new DatePickerDialog(context, listener,
					cal.get(Calendar.YEAR),

					cal.get(Calendar.MONTH),

					cal.get(Calendar.DAY_OF_MONTH)

			).show();
			break;

		case TIME:
			System.out.println("----------time---------------");
			new TimePickerDialog(context, timeListen,
					cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE),
					true).show();
			break;
		default:
			new DatePickerDialog(context, listener, cal.get(Calendar.YEAR),
			cal.get(Calendar.MONTH),
			cal.get(Calendar.DAY_OF_MONTH)

			).show();

		}
 
   정 의 된 대화 상자 에서 시간 을 표시 할 지 여부 입 니 다. switch (DATA | | TIME) 를 변경 하여 원 하 는 모습 을 선택 할 수 있 습 니 다.
 
 
  만약 당신 이 여전히 위의 코드 를 이해 하지 못 하거나 사용 하기에 문제 가 있다 면, 당신 은 연락 할 수 있 습 니 다: qq 1019990976.
 
  진실 이 있 으 려 고 하지 않 는 것 같 아서 요.
 
 
 
 
 
 
 
 

좋은 웹페이지 즐겨찾기