Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Studio-我想在Dialogfragment中通过按钮显示日期选择器_Java_Android_Dialog - Fatal编程技术网

Java Android Studio-我想在Dialogfragment中通过按钮显示日期选择器

Java Android Studio-我想在Dialogfragment中通过按钮显示日期选择器,java,android,dialog,Java,Android,Dialog,请原谅我英语不好。我是新来安卓工作室的 我想通过Dialogfragment中的按钮显示日期选择器。 我可以在我的活动中,在我的片段中显示一个日期选择器,但我不知道如何将它添加到我的Dialogfragment中 我想我的问题是我有两个“onCreateDialog”,一个用于myDialogfragment,一个用于日期选择器 有人能提供帮助或建议吗?关于日期和时间,我们将创建两个片段类。 DatePickerFragment package com.shashank; import and

请原谅我英语不好。我是新来安卓工作室的

我想通过Dialogfragment中的按钮显示日期选择器。 我可以在我的活动中,在我的片段中显示一个日期选择器,但我不知道如何将它添加到我的Dialogfragment中

我想我的问题是我有两个“onCreateDialog”,一个用于myDialogfragment,一个用于日期选择器


有人能提供帮助或建议吗?

关于日期和时间,我们将创建两个片段类。
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;