Çevrenize bir baktım ve benzer bir konuyla ilgili birkaç soru buldum, ancak durumumda yardımcı olan hiçbir şey yok. getSupportFragmentManager(). FindFragmentByTag (TAG) kullanarak varolan bir etkin parçaya erişmeye çalışıyorum, ancak her zaman null döndürür. Benzer sorulardaki yanıtlar, işlemin yürütülmesi için biraz zaman almasını gerektirdiğini, bu nedenle findFragmentByTag çağrısının çok erken çağrılırsa null değerini döndüreceğini öne sürdü. Android fragmanları - findFragmentByTag her zaman null değerini döndürür
- getSupportFragmentManager eklemek() executePendingTransactions()
hemen sonra işlemek, ama yine null adlı olsun: İki şey denedim.. - bir düğme ekledi ... aktivite oluşturulduktan sonra buna bastı, kaydedilen parça ve görüntülenen görünüm sistemini işlemek için yeterli zaman bırakmalıdır. Ama hala null'u aldım.
İşte benim etkinlik var:
public class MainActivity extends ActionBarActivity {
private static final String F_SETTINGS = "f_settings";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
debug();
}
});
if (savedInstanceState == null) {
FSettings newFragment = new FSettings();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.container, newFragment);
ft.addToBackStack(F_SETTINGS);
ft.commit();
// getSupportFragmentManager().executePendingTransactions();
//// Activating this did not make any difference...
}
debug();
}
private void debug() {
String txt = "null";
Fragment frag = getSupportFragmentManager().findFragmentByTag(F_SETTINGS);
if (frag != null) {
txt = frag.toString();
}
Log.i("Testing", txt);
}
}
yanlış burada ne yapıyorum? Alkış, Kodunuzda Max
savingInstanceState'ın boş olduğundan emin misiniz? – njzk2
ft.addToBackStack (F_SETTINGS); <--- bu senin parçalarını etiketlemiyor. – bofredo