2016-08-09 3 views
-1

번들을 사용하여 활동에서 다른 단편으로 데이터를 전송할 수 있다는 것을 알고 있습니다. 몇 가지 연구를 해본 결과, Activity가 데이터를 전송해야하는 Fragment에 Fragment 트랜잭션을 커밋 할 때만 Bundle이 작동한다는 것을 알게되었습니다.커밋하지 않고 번들을 사용하여 활동에서 단편으로 데이터 전송 단편 트랜잭션

내 질문은 : 은 부분 트랜잭션을 커밋하지 않고 작업의 데이터를 다른 조각으로 보낼 수있는 방법이 있습니까?

나는 시나리오를 설명하는 이미지 첨부 :
Problem Scenario 여기

이 주요 활동 (User.java)입니다 : 여기

protected void onCreate(Bundle savedInstanceState) { ActionBar ab = getSupportActionBar(); ab.hide(); super.onCreate(savedInstanceState); setContentView(R.layout.activity_user); TextView txt = (TextView) findViewById(R.id.textView5); Intent intent = getIntent(); String Name = intent.getStringExtra("UserName"); txt.setText("Logged in as "+Name); Bundle bundle = new Bundle(); bundle.putString("message", Name); user_profile up = new user_profile(); //This is the Fragment where I want to send data(which is "Name") up.setArguments(bundle); user_home uh = new user_home(); //This is the Fragment that is added FragmentManager fm = getFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); ft.add(R.id.fragment_container,uh); ft.commit(); } 

제 2 차 활동 곳입니다 데이터를 보내려고합니다 ("user_profile.java"로 알려짐)

Bundle bundle2 = this.getArguments(); 
    String N = bundle2.getString("message"); 
    Toast.makeText(getContext(), N , Toast.LENGTH_SHORT).show();  

번들을 사용하지 않고 액티비티와 프래그먼트간에 보낼 수있는 방법이 있습니까?

+0

당신은'git' 태그를 제거 할 수 있습니다 –

+0

사용 지역 방송을 사용할 수 있습니다. – Pavya

+0

항상 된 SharedPreferences, 의도 또는 SQLite는 – AnoE

답변

1

나는 정확히 전달해야 할 데이터의 종류를 모르겠어요 ..하지만 내가 그런 상황에서 무엇을 https://github.com/greenrobot/EventBus

+0

그 문자열 형식 데이터 –

+0

이벤트 버스를 사용하면 모든 종류의 데이터를 전송할 수 있습니다 ... 단일 문자열 값 또는 정적 값이면 공유 기본 설정, sqlite 등의 옵션을 사용할 수 있지만 서버 호출이 있어야하며 너무 많은 문자열이나 전체 객체를 전달합니다. 이벤트 버스를 시도해 볼 수 있다고 생각합니다. – Moulesh

0

  1. 이 활동

    의 인터페이스를 만들기 당신에게 도움이 될 수
  2. 데이터, 그것은 인터페이스 m에서 수신 될 단편

  3. 패스에서 그 인터페이스를 구현 조각 내부의 ethod, 그리고 그것이 언제 수신되는지도 알 수 있습니다.

Google은 활동과의 의사 소통을 보여주었습니다. 코드를 확인하고 의사 소통을 단속하는 활동에 대해 알아보세요.

https://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity

관련 문제