2015-01-06 3 views
1

아래 코드를 보았지만 알아낼 수 없었습니다.프래그먼트 커밋하지 않고 트랜잭션

if (mGoalProgressFragment != null) { 
    mCallerFramgent.getActivity().getSupportFragmentManager().beginTransaction().show(mGoalProgressFragment); 
} 
mCallerFramgent.getActivity().getSupportFragmentManager().beginTransaction().commit(); 

가 나는 경우 조건이 실패하고 commit()가 호출 될 때 부분을 이해할 수 없습니다입니다. 조건이 true이면 표시 트랜잭션에 커밋이 사용되지 않습니다.

누구든지 나를 이해할 수 있습니까? lint는 if 선택 내부의 트랜잭션에 대한 누락 된 커밋을 보여주기 때문입니다. mGoalProgressFragmentnull하지 않고 당신이 mGoalProgressFragment가 null의 경우 다른 블록에 유용한 메시지를 useful.show되지 않는 방법을 커밋 호출되는 다른 문을 제거 할 때

답변

1

사용

...beginTransaction().show(mGoalProgressFragment).commit(); 

호출 방법을 커밋합니다.

+0

beginTransaction.commit()이 실제로 무엇을하는지 알 수 있습니까? – Chaitanya

+0

'beginTransaction' 메서드가 호출되어 새로운 framgment를 추가하거나 현재 FragmentManager' 및'commit' 메서드에서 조각을 제거하는 등의 작업을 시작합니다. 주 스레드는 현재 트랜잭션을 닫습니다. 자세한 정보를 얻을 수 있습니다. [FragmentManager] (http://developer.android.com/reference/android/support/v4/app/FragmentManager.html#beginTransaction%28%29) –

+0

고맙습니다. @prosper – Chaitanya

관련 문제