2012-08-13 9 views
0

일부 단추가있는 조각 즉, 다음이 & 인 조각이 있습니다. 버튼을 클릭 할 때마다 다음 조각으로 이동해야합니다. 실제로 저는 ViewPager로 이것을 구현 했으므로 사용자가 스 와이프하면 다음 조각으로 넘어갑니다. 그러나 단추를 클릭하여 단편을 어떻게 바꿀 수 있습니까? FragmentActivity 클래스가 아닌 Fragment 클래스에 버튼이 있습니다.버튼 클릭시 조각 변경

+0

FragmentManager (http://developer.android.com/reference/android/app/FragmentManager.html)와 FragmentTransaction (http://developer.android.com/reference/android/app/)을 살펴보십시오. FragmentTransaction.html) – Sprigg

답변

1

버튼이 단편의 일부인 경우 상위 활동은 단편도 이해할 수있는 인터페이스를 구현해야합니다. 그런 다음 버튼이 눌려지면 부모 활동에 대해 알려주고 그 부분을 대체합니다. button이 액티비티 레이아웃의 일부인 경우 Fragment Manager 및 해당 트랜잭션을 사용하여 조각 관리에 대해 읽습니다.

또한
-1
public class FragmentWithButtons extends Fragment { 

    public interface Callbacks { 
     void nextFragment(); 
     void previousFragment(); 
    } 

    private static Callbacks sDummyCallbacks = new Callbacks() { 
     void nextFragment() { 
      // ignore 
     } 
     void previousFragment() { 
      // ignore 
     } 
    } 

    private Callbacks mCallbacks = sDummyCallbacks; 

    private Button mPrevBtn; 
    private Button mNextBtn; 

    private View.OnClickListener mPrevBtnListener = new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mCallbacks.previousFragment(); 
     } 
    } 

    private View.OnClickListener mNextBtnListener = new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mCallbacks.nextFragment(); 
     } 
    } 

    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
     if (!(activity instanceof Callbacks) { 
      throw new IllegalStateException("Activity: " + activity + " must implement " + Callbacks.getCanonicalName()); 
     } 
     mCallbacks = (Callbacks) activity; 
    } 

    public void onDetach() { 
     super.onDetach(); 
     mCallbacks = sDummyCallbacks; 
    } 
} 

public class ActivityWithButtonFragment extends Activity implements FragmentWithButtons.Callbacks { 
    @Override 
    public void previousFragment() { 
     // switch to previous fragment using FragmentManager... 
    } 

    @Override 
    public void nextFragment() { 
     // switch to next fragment using FragmentManager... 
    } 
} 

, 당신에게 어떻게 조각 활동의 통신이 일어날 수 있도록하는 아이디어를 제공한다 http://developer.android.com/training/basics/fragments/communicating.html

을 확인하십시오.

관련 문제