UI'de EditText
hattı odaklandığında, kullanıcının bir tarih girmesi için DatePickerFragment
başlatılır.Oryantasyon değişimini nasıl işleyebilirim Fragment yüklemiyor?
Yönlendirme değişikliğinde, EditText
satırında netleme ve daha önce girilmiş bir tarih varsa (length() > 0
), parçanın otomatik olarak gösterilmesini istemiyorum.
Etkinliğin yeni oluşturulduğu ve EditText
hattının odağı varsa, DatePickerFragment
otomatik olarak başlatılmayacak şekilde kodu değiştirmenin veya eklemenin bir yolu var mı?
onResume()
içinde bir şeyler yapmak iyi bir fikir olabilir mi?
Veya savedInstanceState()
ve !=null
ile bir şeyler yapın?
public class Activity extends AppCompatActivity {
...
EditText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
...
if (hasFocus && (EditText.getText().length() == 0)) {
DatePickerFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
else if (hasFocus && (EditText.getText().length() > 0)) {
...
DatePickerFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
}
});
}
Merhaba, yalnızca etkinliğe parça ekliyorum. Etkinliği göstermek için yukarıdakileri düzenleyeceğim. – AJW
Tamam, bu yüzden DatePickerDialog kullanıyorum, böylece show (getSupportFragmentManager) fragmenttransactions yapar. "If (savedInstanceState == null)" satırı, aygıtın döndürüldükten sonra true olan savedInstanceSate boş olmadığı zaman parçayı eklemediğinden de yorumlanabilir. – AJW
evet, outState paketine herhangi bir veri kaydetmeseniz bile, cihaz rotasyonu –