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 () 格式化显示