使用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.this
和getActivity()
而不是getContext()
,而且它们都没有用。
答案 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");