마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

fragment->fragment로 이동하기

0 추천

 

 

메인액티비티 상단에 1,2,3,4 버튼이 있습니다. 각각 누르면 frag1,2,3,4페이지가 가운데에 출력됩니다.

int mCurrentFragmentIndex;
	public final static int MENU_1 = 0;
	public final static int MENU_2 = 1;
	public final static int MENU_3 = 2;
	public final static int MENU_4 = 3;

	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		Button btn_1 = (Button)findViewById(R.id.btn_1);
		Button btn_2 = (Button)findViewById(R.id.btn_2);
		Button btn_3 = (Button)findViewById(R.id.btn_3);
		Button btn_4 = (Button)findViewById(R.id.btn_4);
		
		btn_1.setOnClickListener(this);
		btn_2.setOnClickListener(this);
		btn_3.setOnClickListener(this);
		btn_4.setOnClickListener(this);
		
		mCurrentFragmentIndex = MENU_1; //기본적으로 1페이지를 맨 먼저 출력
		
		fragmentReplace(mCurrentFragmentIndex);
		
	}//onCreate

	
	
	private void fragmentReplace(int reqNewFragmentIndex) 
	{
		Fragment newFragment = null;
		Log.d(TAG, "fragmentReplace " + reqNewFragmentIndex);

		newFragment = getFragment(reqNewFragmentIndex);

		// replace fragment
		final FragmentTransaction transaction = getSupportFragmentManager()
				.beginTransaction();

		transaction.replace(R.id.fragment, newFragment);

		// Commit the transaction
		transaction.commit();
	}



	private Fragment getFragment(int index) 
	{
		// TODO Auto-generated method stub
		
		Fragment newFragment = null;
		
		switch(index)
		{
			case MENU_1:
			newFragment = new menu1();
				break;
			
			case MENU_2:
				newFragment = new menu2();
				break;
				
			case MENU_3:
				newFragment = new menu3();
				break;
				
			case MENU_4:
				newFragment = new menu4();
				break;
		}
		return newFragment; //null x
	}

	@Override
	public void onClick(View v) 
	{
		// TODO Auto-generated method stub
		switch (v.getId()) {

		case R.id.btn_1:
			mCurrentFragmentIndex = MENU_1;
			fragmentReplace(mCurrentFragmentIndex);
			break;
		case R.id.btn_2:
			mCurrentFragmentIndex = MENU_2;
			fragmentReplace(mCurrentFragmentIndex);
			break;
		case R.id.btn_3:
			mCurrentFragmentIndex = MENU_3;
			fragmentReplace(mCurrentFragmentIndex);
			break;
			
		case R.id.btn_4:
			mCurrentFragmentIndex = MENU_4;
			fragmentReplace(mCurrentFragmentIndex);
			break;

		}
		
	}
		

이런식으로 구현했는데, 이제 메인->프래그먼트가 아니라,

프래그먼트->프래그먼트로 이동하고 싶습니다. 4페이지에서 빨간 버튼을 누르면 변수값을 전달하면서

동시에 1을 가운데 뷰에 출력하고 싶은데요, 프래그먼트에서 프래그먼트로 이동하는 방법은 찾아보니 잘 나오지 않아서

질문글 올려봅니다..

프래그먼트이동하기 님이 2015년 1월 22일 질문

3개의 답변

0 추천
뷰페이저연동하면 쉽게 되실꺼임돠
nicehee (73,100 포인트) 님이 2015년 1월 22일 답변
0 추천
뷰페이저연동하면 쉽게 되실꺼임돠

뷰페이저인디케이터 구글링해보셔요
nicehee (73,100 포인트) 님이 2015년 1월 22일 답변
0 추천
Fragment4->MainActivity로 콜 할 수 있는 콜백함수가 있으면 편합니다.

Listener하나 만드셔서 MainActivity에 implements하시고, MainActivity를 Fragment4에 전달해줘서 콜백으로 등록해두고요.

Fragment4에서 해당 이벤트가 발행하면 MainActivity로 콜백함수 불러주시면 됩니다.

해당 콜백함수는 어차피 MainActivity에 있으니까 MainActivity 탭에서 바꿔주는것 처럼 함수 호출해서 바꿔주면 되고요.
식후삼십분 (150 포인트) 님이 2015년 1월 23일 답변
...