材料DatePicker无法在碎片

时间:2017-09-28 12:53:51

标签: android material-design android-datepicker android-timepicker

使用github的compile 'com.wdullaer:materialdatetimepicker:3.0.0'材质设计来支持Android版本的相似设计> 4。

Activity中,它正在发挥作用。但在Fragments中并非如此。

public class Abs extends AppCompatActivity implements com.wdullaer.materialdatetimepicker.date.DatePickerDialog.OnDateSetListener {

//onCreate method



 button.setOnClickListener(new OnClickListener){
    //Edittexts
    //Edittexts
    startActivity(new Intent(Abs.this, Random.class))
         }
    }



imgdob.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Calendar now = Calendar.getInstance();
            DatePickerDialog datePickerDialog = DatePickerDialog.newInstance(Abs.this, now.get(Calendar.YEAR),now.get(Calendar.MONTH), now.get(Calendar.DAY_OF_MONTH));
            datePickerDialog.show(getFragmentManager(), "DatePicker");
        }
    });
}

@Override
public void onDateSet(datePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
    edtxdOb.setText(dayOfMonth + "/" + monthOfYear + "/" + year);
}

类似的代码是在片段中实现的,但我使用Abs.thisgetActivity()而不是getContext(),而且它们都没有用。

1 个答案:

答案 0 :(得分:1)

最后,找到了解决方案。

 DatePickerDialog datePickerDialog = DatePickerDialog.newInstance(**FragmentClassName**.this,  //Your Fragment Class Name should be here, not getActivity(), or getContex().
        now.get(Calendar.YEAR),
        now.get(Calendar.MONTH), 
        now.get(Calendar.DAY_OF_MONTH));
 datePickerDialog.show(getActivity().getFragmentManager(), "DatePicker");