我知道DatePickerDialog
有很多问题正如此帖Jelly Bean DatePickerDialog --- is there a way to cancel?所解释的那样但我的问题是我想只显示确认按钮而不是两个纽扣。我在DatePickerDialog
中使用DialogFragment
,如下所示:
public class DateDialog extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// set up mindate
minYear = year;
minMonth = month;
minDay = day;
// Create a new custom instance of DatePickerDialog and return it
return new CustomDatePickerDialog(getActivity(), this, year, month, day);
}
}
答案 0 :(得分:11)
我终于找到了一个更简单的解决方案。以下是CustomDatePickerDialog
中的工作区,其中包含DatePickerDialog
public CustomDatePickerDialog(Context context, OnDateSetListener callBack, int year, int monthOfYear,int dayOfMonth) {
super(context, callBack, year, monthOfYear, dayOfMonth);
this.setButton(DatePickerDialog.BUTTON_POSITIVE, "OK",this);
this.setButton(DatePickerDialog.BUTTON_NEGATIVE, "",this); // hide cancel button
}
答案 1 :(得分:2)
您可以使用这样的自定义XML:
datepickerdialog.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<DatePicker
android:id="@+id/dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:calendarViewShown="false"/> //delete this line if you want to show calendar too
</RelativeLayout>
然后将一个监听器添加到一个按钮(或其他任何东西)并像这样膨胀这个布局:
yourclass.java
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.aggiungiesame);
Button button = (Button) findViewById(R.id.your_id_button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button: {
LayoutInflater inflater = getLayoutInflater();
View customView = inflater.inflate(R.layout.datepickerdialog, null);
DatePicker dp = (DatePicker) customView.findViewById(R.id.dp);
...OTHER CODE HERE
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(customView);
builder.setTitle("Select date:");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
...YOUR CODE HERE...
dialog.dismiss();
}
});
builder.create().show();
break;
}
}
}
在这里只设置一个按钮,即“确定”按钮!
答案 2 :(得分:0)
您可以在Kotlin中这样做:
dpd.setButton(DatePickerDialog.BUTTON_NEGATIVE, null, null as DialogInterface.OnClickListener? )
其中dpd是您的DatePickerDialog实例。