2013-08-20 4 views
9

비슷한 주제로 몇 가지 질문을했지만 내 경우에는 도움이되지 않았습니다. 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); 
} 

}

은 내가 잘못 여기서 뭐하는 거지? 건배, 당신의 코드에서 최대

+1

확실 하시겠습니까? savedInstanceState가 null입니까? – njzk2

+1

ft.addToBackStack (F_SETTINGS); <---이 태그는 조각을 태그 지정하지 않습니다. – bofredo

답변

20

당신은 그래서,
사용 조각

ft.replace(R.id.container, newFragment,"fragment_tag_String"); 

의 대체 방법이 구조 자세한 내용은이 링크를 참조 방법을 대체 태그를 언급하지 않았습니다. fragment replace with tag name

+0

오, 이런, 무슨 일이 잘못되었는지 ... 코드를 쳐다봤을 때 얼마나 오래 믿을 수 있겠습니까? 고마워요, 지금 작동합니다. – maxdownunder

+0

내 관련 질문을 참조하십시오. http://stackoverflow.com/questions/24833912/refresh-fragment-ui-from-fragmentactivity –

관련 문제