设置DatePicker

时间:2016-04-18 15:03:19

标签: android datepicker

我正在使用Android托盘DatePicker。截至目前,我能够显示日历,但我无法存储任何用户选择的日期/时间。

JAVA CODE

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;

import java.util.Calendar;

public class date extends AppCompatActivity {
    MainActivity z = new MainActivity();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_date);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton)      findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "", Snackbar.LENGTH_LONG).setAction("Action", null).show();
        }
    });
}
}

XML文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="aa.android.group3.com.finalassignmentalert.date"
tools:showIn="@layout/activity_date">

<CalendarView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/calendarView"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />
</RelativeLayout>

非常感谢能提供的任何帮助。

谢谢

1 个答案:

答案 0 :(得分:2)

我建议您在Java类中使用<CalenderView>DatePicker,而不是使用Calender标记。

示例代码 - &gt;

public class MainActivity extends Activity {

private DatePicker datePicker;
private Calendar calendar;
private TextView dateView;
private int year, month, day;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  dateView = (TextView) findViewById(R.id.textView3);
  calendar = Calendar.getInstance();
  year = calendar.get(Calendar.YEAR);

  month = calendar.get(Calendar.MONTH);
  day = calendar.get(Calendar.DAY_OF_MONTH);
  showDate(year, month+1, day);
}

@SuppressWarnings("deprecation")
public void setDate(View view) {
  showDialog(999);
  Toast.makeText(getApplicationContext(), "ca", Toast.LENGTH_SHORT)
  .show();
}

@Override
protected Dialog onCreateDialog(int id) {
  // TODO Auto-generated method stub
  if (id == 999) {
     return new DatePickerDialog(this, myDateListener, year, month, day);
  }
  return null;
}

private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() {
  @Override
  public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
     // TODO Auto-generated method stub
     // arg1 = year
     // arg2 = month
     // arg3 = day
     showDate(arg1, arg2+1, arg3);
  }
 };

private void showDate(int year, int month, int day) {
  dateView.setText(new StringBuilder().append(day).append("/")
  .append(month).append("/").append(year));
}

}