0
너비가 문제가 있습니다. DatePickerDialog가 열려서 화면 (가로/세로)을 돌리면 대화 상자가 중지되기 때문입니다.
는 지금은 번들에서 대화 상자의 상태를 저장하기 위해 노력하고있어,하지만 난 정말 모르는 방법 :/가로/세로 방향에서 회전 할 때 DatePickerDialog가 닫습니다.
코드 :
public class ActivityNeki extends Activity {
private int datY, datM, datD;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
if(savedInstanceState == null){ setTheData(); writeTheData(); }
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putInt("izY", datY);
outState.putInt("izM", datM);
outState.putInt("izD", datD);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
datY = savedInstanceState.getInt("izY");
datM = savedInstanceState.getInt("izM");
datD = savedInstanceState.getInt("izD");
writeTheData();
}
public void onClickOpenDPD(View view) { // the method that is caled from XML onClick
DatePickerDialog dpd = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override public void onDateSet(DatePicker view, int y, int m, int d) {
datY = y; datM = m; datD = d;
writeTheData();
}
}, datY, datM, datD);
dpd.show();
}
public void setTheData(){
Calendar c = Calendar.getInstance();
datY = c.get(Calendar.YEAR);
datM = c.get(Calendar.MONTH);
datD = c.get(Calendar.DAY_OF_MONTH);
}
public void writeTheData(){
// writes the data in a txtView
}
}
애니 온은 어떤 생각 방법이 그래서 경우 이것을하기 위해, 나는 그것을 보증 할 것이다!
: 사전에
덕분에 작업 솔루션 : (Taig에 큰 TNX)
public class ActivityNeki extends FragmentActivity {
/**
* the rest of the code
* is the same...
* I only edited this method:
*/
public void onClickOpenDPD(View view) { // the method that is caled from XML onClick
class MyDialogFragment extends DialogFragment {
@Override public void onDestroyView() {
if (getDialog() != null && getRetainInstance()) getDialog().setDismissMessage(null);
super.onDestroyView();
}
@Override public void onCreate(Bundle state) { super.onCreate(state);
setRetainInstance(true);
}
@Override public Dialog onCreateDialog(Bundle state) {
DatePickerDialog dpd = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
@Override public void onDateSet(DatePicker view, int y, int m, int d) {
datY = y; datM = m; datD = d;
writeTheData();
} }, datY, datM, datD);
return dpd;
}
}
newDF = new MyDialogFragment();
newDF.show(getSupportFragmentManager(), null);
}
}
대답은 tnx입니다. 이제는 LogCat에서 오류없이 작동합니다. 그러나 화면을 돌리면 대화 상자가 닫힙니다./어떤 아이디어입니까? Tnx again! :) – BRap
게시물에 코드를 추가 할 수 있습니까? – Taig
나는 다음과 같이 덧붙였다. :) – BRap