비슷한 주제로 몇 가지 질문을했지만 내 경우에는 도움이되지 않았습니다. getSupportFragmentManager(). findFragmentByTag (TAG)을 사용하여 기존 활성 조각에 액세스하려고 시도했지만 항상 null을 반환합니다. 비슷한 질문에 대한 답은 커밋을 실행하는 데 시간이 걸릴 것이라고 제안 했으므로 findFragmentByTag를 호출하면 너무 일찍 호출하면 null이 반환됩니다. 안드로이드 조각 - findFragmentByTag는 항상 null을 반환합니다.
- 이 에서 getSupportFragmentManager를 추가() executePendingTransactions()
직후 커밋,하지만 여전히 널를 얻을 : 나는 두 가지를 시도했습니다.. - 버튼을 추가했습니다 ... 활동이 생성 된 후에 이것을 누르는 것은 조각이 등록되고 표시된보기가 시스템에 커밋 할 시간을 남겨야합니다. 하지만 난 여전히 null.
여기 내 활동입니다 :
는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);
}
}
은 내가 잘못 여기서 뭐하는 거지? 건배, 당신의 코드에서 최대
확실 하시겠습니까? savedInstanceState가 null입니까? – njzk2
ft.addToBackStack (F_SETTINGS); <---이 태그는 조각을 태그 지정하지 않습니다. – bofredo