Java Android Studio-我想在Dialogfragment中通过按钮显示日期选择器
请原谅我英语不好。我是新来安卓工作室的 我想通过Dialogfragment中的按钮显示日期选择器。 我可以在我的活动中,在我的片段中显示一个日期选择器,但我不知道如何将它添加到我的Dialogfragment中 我想我的问题是我有两个“onCreateDialog”,一个用于myDialogfragment,一个用于日期选择器Java Android Studio-我想在Dialogfragment中通过按钮显示日期选择器,java,android,dialog,Java,Android,Dialog,请原谅我英语不好。我是新来安卓工作室的 我想通过Dialogfragment中的按钮显示日期选择器。 我可以在我的活动中,在我的片段中显示一个日期选择器,但我不知道如何将它添加到我的Dialogfragment中 我想我的问题是我有两个“onCreateDialog”,一个用于myDialogfragment,一个用于日期选择器 有人能提供帮助或建议吗?关于日期和时间,我们将创建两个片段类。 DatePickerFragment package com.shashank; import and
有人能提供帮助或建议吗?关于日期和时间,我们将创建两个片段类。
DatePickerFragment
package com.shashank;
import android.annotation.SuppressLint;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.widget.DatePicker;
import android.widget.TextView;
import java.util.Calendar;
@SuppressLint("ValidFragment")
public class DatePickerFragment extends DialogFragment implements
DatePickerDialog.OnDateSetListener {
private TextView tvdate;
@SuppressLint("ValidFragment")
public DatePickerFragment(TextView etIncomeDate) {
this.tvdate = etIncomeDate;
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Calendar c = Calendar.getInstance();
int year = c.get( Calendar.YEAR );
int month = c.get( Calendar.MONTH);
int day = c.get( Calendar.DAY_OF_MONTH );
return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) this, year, month, day);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
populateSetDate(year, month+1, dayOfMonth );
}
public void populateSetDate(int year, int month, int day) {
if(day<=9 && month <=9)
{
tvdate.setText(year+"-"+"0"+month+"-"+"0"+day);
}
else if(day<=9 && month>9)
{
tvdate.setText(year+"-"+month+"-"+"0"+day);
}
else if(day>9 && month<=9){
tvdate.setText(year+"-"+"0"+month+"-"+day);
}
else{
tvdate.setText(year+"-"+month+"-"+day);
}
}
}
package com.shashank;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.widget.TextView;
import android.widget.TimePicker;
import java.util.Calendar;
@SuppressLint("ValidFragment")
public class TimePickerFragment extends DialogFragment implements
TimePickerDialog.OnTimeSetListener{
private TextView tvTime;
private Calendar c;
@SuppressLint("ValidFragment")
public TimePickerFragment(TextView etIncomeTime) {
this.tvTime = etIncomeTime;
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
c = Calendar.getInstance();
int hour = c.get( Calendar.HOUR_OF_DAY );
int minute = c.get( Calendar.MINUTE );
return new TimePickerDialog( getActivity(), (TimePickerDialog.OnTimeSetListener) this, hour, minute, android.text.format.DateFormat.is24HourFormat(getContext()) );
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
populateSetTime(hourOfDay, minute);
}
public void populateSetTime(int hour, int minute) {
if(minute<=9 ||minute==0)
tvTime.setText(hour+":0"+minute);
else
tvTime.setText( hour+":"+minute );
}
public String checkAmPm(){
String am_pm = " ";
if (c.get(Calendar.AM_PM) == Calendar.AM)
am_pm = "AM";
else if (c.get(Calendar.AM_PM) == Calendar.PM)
am_pm = "PM";
return am_pm;
}
}
现在,通过导入:
import com.shashank.DatePickerFragment;
import com.shashank.TimePickerFragment;
在同一个项目中。检查此答案可能是重复的感谢。我看到了页面,但它无法解决我的问题(我想在Dialog Fragment中显示它。datepicker本身就是一个对话框片段。但是,如果您需要,您只需按上面提供的链接中所述的按钮并在那里显示对话框,您可以显示您的代码吗?。现在,您打开了一个对话框,您想显示datepicker对话框吗?
package com.shashank;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.shashank.DatePickerFragment;
import com.shashank.TimePickerFragment;
import java.util.Calendar;
import java.util.List;
public class HomeFragment extends Fragment {
String date, time = null;
final String DATE_PATTERN = "(0?[1-9]|1[012]) [/.-] (0?[1-9]|[12][0-9]|3[01]) [/.-] ((19|20)\\d\\d)";
TextView etDate, etTime, etHintDate, etHintTime;
private int year, month , day, hour, minute;
public HomeFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getActivity().setTitle("Date Time Picker");
// Inflate the layout for this fragment
View view = inflater.inflate( R.layout.fragment_home,container, false );
etDate = (TextView) view.findViewById( R.id.etDate );
etTime = (TextView) view.findViewById( R.id.etTime );
etHintDate= (TextView) view.findViewById( R.id.etHintDate);
etHintTime = (TextView) view.findViewById( R.id.etHintTime );
Calendar cal = Calendar.getInstance();
int year = cal.get( Calendar.YEAR );
int month = cal.get( Calendar.MONTH);
int day = cal.get( Calendar.DAY_OF_MONTH );
int hour = cal.get( Calendar.HOUR_OF_DAY );
int minute = cal.get( Calendar.MINUTE );
etDate.setText( year+"-"+"0"+month+"-"+day );
etTime.setText( hour+":"+minute );
@Override
public void onClick(View view) {
date = etDate.getText().toString();
time = etTime.getText().toString();
}
etHintTime.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment newFragment = new TimePickerFragment(etTime);
newFragment.show(getFragmentManager(), "TimePicker");
}
} );
etHintDate.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment newFragment = new DatePickerFragment(etDate);
newFragment.show(getFragmentManager(), "DatePicker");
}
} );
return view;
}
}
import com.shashank.DatePickerFragment;
import com.shashank.TimePickerFragment;