Android基础(一)布局6.日历

xml:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout android:id="@+id/layout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <DatePicker
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/pick1"
        android:layout_x="20px"
        android:layout_y="20px">
    </DatePicker>
    <TimePicker
        android:layout_width="220px"
        android:layout_height="wrap_content"
        android:id="@+id/tpick"
        android:layout_x="20px"
        android:layout_y="180px"></TimePicker>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="34px"
        android:id="@+id/showtime"
        android:textSize="24sp"
        android:layout_x="30px"
        android:layout_y="330px"/>
</AbsoluteLayout>

java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;

import java.util.Calendar;

import static java.lang.String.format;

public class MainActivity extends AppCompatActivity {
    private int mYear;
    private int month;
    private int mday;
    private int mhour;
    private int mMinute;
    TextView tv;
    TimePicker tp;
    DatePicker dp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //取得现在的时间与日期
        Calendar c=Calendar.getInstance();
        mYear=c.get(Calendar.YEAR);
        month=c.get(Calendar.MONTH);
        mday=c.get(Calendar.DAY_OF_MONTH);
        mhour=c.get(Calendar.HOUR);
        mMinute=c.get(Calendar.MINUTE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv=(TextView)findViewById(R.id.showtime);
        upDatetime();
        dp=(DatePicker)findViewById(R.id.pick1);
        dp.init(mYear, month, mday, new DatePicker.OnDateChangedListener() {
            @Override
            public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) {
                mYear=i;
                month=i1;
                mday=i2;
                upDatetime();
            }
        });
        tp=(TimePicker)findViewById(R.id.tpick);
        tp.setIs24HourView(true);
        tp.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker timePicker, int i, int i1) {
                mhour=i;
                mMinute=i1;
                upDatetime();
            }
        });
    }
    private void upDatetime()
    {
        tv.setText(new StringBuilder().append(mYear).append("/").append(format(month+1)).append("/").append(format(mday)).append(" ").append(format(mhour)).append(":").append(format(mMinute)));
    }

    private String format(int i) {
        String s=""+i;
        if(s.length()==1) s="0"+s;
        return s;
    }
}

1.getInstance() new一个对象,由于日历类比较复杂,所以使用此方法而不是直接new
2.StringBuilder() 和string类类似,但是性能更高
3.format () 格式化显示

猜你喜欢

转载自blog.csdn.net/qq_37282683/article/details/82945392