2017-09-15 2 views
0

전체 조각 수명주기를 이해하지 못합니다.Spinner에서 선택한 항목을 조각에서 활동으로 전달

케이스 :

클릭 Activity에서 FrameLayoutFragment로 이동이 노력하고 있습니다.

문제점 : Fragment에서

spinners 하나 SubmitButton 모두 spinner 값을 선택하면 SubmitButton의 클릭이 다시 Activity'sTextviews에 스피너에서 그 값을 표시한다가있다. 그러나, 나는 그것을 할 수 없습니다.

내 솔루션 :

나는 Intent, putExtras 다음 getExtras을 사용하려고하지만, 우리가 Fragment에있는 한 IntentFragment 작동하지 않을. Bundle도 도움이되지 않습니다.

P. 좋은 단편의 생명주기를 이해하는 사람이 필요합니다. stackoverflow 및 기타 자습서에서 많은 게시물을 읽으십시오. 내가 의미하는 바를 찾지 못했다.

는 eventBus 당신이

1) 주조 getActivity() 액티비티로하고 특정 메서드를 호출하고 매개 변수를 전달하는 것이 할 수있는

+0

값을 전달하기위한 쓰기 인터페이스 –

+0

프래그먼트에서 콜백을 사용하거나'getActivity()'또는'getContext()'를 사용하여 활동에 대한 참조를 가져 와서 특정 메소드를 호출하는 값을 다시 전달할 수 있습니다. 액티비티 – MatPag

+0

'android studio'에서'Fragment'를 생성하면 액티비티로 데이터를 보내는 데 사용할 수있는 인터페이스가있는 예제를 볼 수 있습니다. New -> Fragment –

답변

1

두 가지 방법으로 외부 라이브러리를하지 마십시오.

public class MyActivity extends AppCompatActivity { 

    public void setData(String value){ 
     // do whatever with the data 
    } 
} 

public class MyFragment extends Fragment{ 

    public void someMethod(){ 
    ((MyActivity)getActivity).setData(your_data); 
    } 
} 

2)은 인터페이스를 생성하고 액티비티 값을 전달한다.

public class MyActivity extends AppCompatActivity implements SpinnerListener{ 

    @Override 
    public void onSpinnerItemSelected(String value){ 
     // do whatever with the data 
    } 

    public interface SpinnerListener { 
    void onSpinnerItemSelected(String value); 
    } 
} 

public class MyFragment extends Fragment { 

    private SpinnerListener spinnerListener; 

    @Override 
    public void onAttach(Context context) { 
     super.onAttach(context); 
     if(context instanceOf MyActivity) 
      spinnerListener = ((MyActivity)context); 
    } 

    public void someMethod() { 
     if(spinnerListener != null) 
     spinnerListener.onSpinnerItemSelected(your_data); 
    } 
} 

참고 : 안전한 방법은 인터페이스를 사용하고 있습니다.

+0

액티비티에서 내 프래그먼트를 호출 할 수 있지만, 프래그먼트에서 액티비티로 abt를 보내는 방법은 무엇입니까? 조각으로 확실하지 않다 – Zoffa

+0

예제를 게시 할 예정입니다. –

+0

나는 여전히 내 문제를 다루는 데 어려움에있다. @Bhuvanesh Bs – Zoffa

관련 문제