user1302569
그는 물었다 8년 전
283

데이터를 전송할 수 있는 활동 부분 안드로이드

저도 두 클래스. 첫 번째는 활동, 두번째는 어디서 받긴 에디트스트 '조각'. I have a 클래스 '에서 활동을 통해 "나는 내가 그 결과, 저장할 수 있는 방법 좀 도인백그로런드 비동기 작업 및 변수. 어떻게 이 변수, 클래스 내 에서 전송하십시오 &quot activity&quot. 이 부분?

답변 20 개

활동 의도 사용하여 데이터를 보낼 수 있다.

15 160 {{{000}}}

또한 부분 언크리티비우 방법:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    String strtext = getArguments().getString("edttext");    
    return inflater.inflate(R.layout.fragment, container, false);
}

Terry
yeahman
그는 7년 전 댓글을 달았습니다
12

객체를 전달할 수 있는 부분?

Nima G
그는 7년 전 댓글을 달았습니다
53

I get a 누얼포인터렉세페시옹 온데간데없군 그레타르구멘츠 그제스트링 (키) '를 호출할 때' ()

ρяσѕρєя K
그는 7년 전 댓글을 달았습니다
0

@Nima: 안녕하세요, 공유할 수 있도록 노력하겠다고 다음 코드 및 관련 부품 desktopplatforms 오류 로그를 그러거라 감사합니다

Nima G
그는 7년 전 댓글을 달았습니다
0

중요한건 @ρяσѕρєяk 설정해야 합니다 추가되도록 작업또는 # 39, 이 부분은 전에 번들화 you& ll get NPE.

Gangnaminmo Ako
그는 7년 전 댓글을 달았습니다
0

널 포인터 () 를 호출할 때 idfsysobject. load_url = 그레타르구멘츠 그제스트링 (&quot edttext";).

Harshal Kalavadiya
그는 7년 전 댓글을 달았습니다
0

@ρяσѕρєя K: 간에 데이터를 공유할 수 있는가 하는 부분은 작업을요? 예이면 그럼 어떻게?

Jorgesys
그는 7년 전 댓글을 달았습니다
9

누얼포인터렉세페시옹 &quot 스트라테스트 그제스트링 스테거멘츠 (), 문자열 (edttext&quot ";), &quot.

Lion789
그는 6년 전 댓글을 달았습니다
0

이건 엄청난거야 그 어떠한 단서를 바탕으로 새로운 데이터를 전송하는 방법, 이런 활동이 onc리크리스트너 쉽게?

balachandarkm
그는 6년 전 댓글을 달았습니다
3

항상 먼저 읽는 동안 번들에는 조각을 사용하여 번들화 받을 방법 및 내용에 대해 확인해 붙여넣습니다 번들에는 객체에는 그레타르구멘츠 nulll. 그렇지 않으면 제스트링 NPE 에 적용할 nulll 등 없을 때 번들에는 방법을 사용하면 된다. 이 때 전달되지 않은 예외 () 은 널 포인터를 방지하는 것입니다.

그러나 그 후 같은 것을 하고, 나를 위해 큰 일을 집합하도록 오토메이티드 작동안함 가까운 선언 및 표시 구체화하십시오 내 조각 내 페이지 오류

Aznix
그는 6년 전 댓글을 달았습니다
0

그리고 클래스 구성자를 어때? 사용하지 않는 이유는 같은 구성자를 ' 공용 프라그먼트발트 (구체화하십시오 이스카운트너) { 티스트라스카운트너 = 이스카운트너. } '

eddy
그는 5년 전 댓글을 달았습니다
0

제발 좀 줘 이리 조언을 할 수 있을 것 같니 @ρяσѕρєяk / 참고 http://goo.gl/E37NSu

Azam
그는 5년 전 댓글을 달았습니다
3

@Aznix. 구성자를 조각을 만들기 위한 것이 아니다.

Aznix
그는 5년 전 댓글을 달았습니다
0

이 후, 나는 진정 @azam 검토완료

kuldeep
그는 5년 전 댓글을 달았습니다
0

그리고 다른 방법으로 만나요? 내 말은 만일 나의 조각이 있는 조각은 페이징됩니다 작업을요 만듭니다. 이제 내가 원하는 것을 다시 한번 내 일부 데이터를 전달하기 위해 만든 조각 활동 마무리를 이 작업! 감사합니다

ρяσѕρєя K
그는 5년 전 댓글을 달았습니다
1

@k2ibegin: 이를 위해 사용하는 방법 및 활동 '에 있는' 요나스티비타이어술트 오버라이드합니다 스타르타스티비티포러스울트 '' 작업 시작 부분은 덧붙였다. "에서 요나스티비타이어술트 조각 조각 및 데이터를 얻기 위해 '를 만들 수 있는 방법을 사용하여 해당 부분을 추가하는 데 사용되는 동일한 객체를 가지고 있는 프레이크망만거 호출하십시오 와-u

Bugs Happen
그는 5년 전 댓글을 달았습니다
0

어떻게 이렇게 할 경우 xml 의 조각 조각 ',' com.picker.PickerListFragment&quot &lt, 안드로이드, 이름 = &quot?? 데이터를 전송할 수 있겠느냐 "에서 활동 '이' 피커리스트프레이크망 '??

Burak Öztürk
그는 4년 전 댓글을 달았습니다
0

하지만 해당 객체를 객체에는 구축 시리얼화가 가능합니다 예 @yeahman 전달할 수 있습니다

alexsalo
그는 4년 전 댓글을 달았습니다
1

39 에서는 don& NPE 의 활동을 통해 만든 후, 조각, t forget 정적임 팩터리의 지루려면 &quot &quot 프라그먼트리스타르구멘츠 (그레이튼트 오게테스트라스 () ());;; 안드로이드 예제에서와 페이지이므로 바꿀 수 있는지, 그 이후 인수를 통해 전달된 정적임 팩터리의.

behelit
그는 4년 전 댓글을 달았습니다
0

39, t, t '이후' 이 없는 isn& 언크리티비우 isn& # 39 의 후속 불렀으매 조각 참조입니다? 따라서 처음 때만

kartheeki j
그는 4년 전 댓글을 달았습니다
0

웹 서비스 반응이 어떻게 @ρяσѕρєяk 전송하십시오 모피쳐 활동을 하였다. 나는 null 값을 가져오는. 도와주세요.

ρяσѕρєя K
그는 4년 전 댓글을 달았습니다
0

@kartheekij: 질문 https://partner. 게시하기를 공유하지는

Dario
그는 3년 전 댓글을 달았습니다
0

개체를 보내는 방법? 하지만 내가 그렇게 시도하시겠습니까 프레젠테이션이든 오류!

https://stackoverflow.com/questions/48419494/send-object-created-from-mainactivity-to-fragments-tabbedview

FlorianT
그는 2년 전 댓글을 달았습니다
0

멀지 않은 곳에 있는 answer to the 문제가 발생했습니다. 하지만 문제는 반군지역 데이터 한 뒤 라이너스타스크 관한 것이었습니다. 이 부분은 이미 작성되어 커밋됩니다 있어야한다. 앞으로 더 많은 경우 이에 대한 해답은 이미 커밋됩니다 @ρяσѕρєяk 업보테스 조정할 수 있게 하였다.)

Zia Ur Rahman
그는 2년 전 댓글을 달았습니다
0

모든 사람이 이제 막 주고 반군지역 텍스트, 하지만 내 시나리오는 약간 다르다. # 39 개의 다른 일에 비해 훨씬 don& t you see, 즉 맞춤형 교육, text / 문자열이어야 List&lt, 맞춤형 Class&gt. 상술합니다. 그렇다면 이런 종류의 데이터를 전달하기 위해 활동을 하였다.

Ashik Azeez
그는 2년 전 댓글을 달았습니다
0

그레타르구멘츠 () 는 항상 nulll!

Dileepa Nipun Salinda
그는 일 년 전 댓글을 달았습니다
0

조각 작업을 통해 전달하십시오 객체에는 수 있을까요?

ρяσѕρєя K
그는 일 년 전 댓글을 달았습니다
1

@DileepaNipunSalinda: 있음-그러나 smartupdate 클래스를 구현하고 또는 페르세우이블 시리얼화가 가능합니다

Dileepa Nipun Salinda
그는 일 년 전 댓글을 달았습니다
0

@ρяσѕρєяK: 병이 ok. 발라봐 고맙습니다.

또한 데이터가 액세스하려면 활동을 하였다.

  • Activity:*

public class MyActivity extends Activity {

    private String myString = "hello";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        ...
    }

    public String getMyData() {
        return myString;
    }
}

  • Fragment:*

public class MyFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        MyActivity activity = (MyActivity) getActivity();
        String myDataFromActivity = activity.getMyData();
        return view;
    }
}

Ricardas
Rudi Kershaw
그는 6년 전 댓글을 달았습니다
73

이 솔루션은 사용자의 활동을 간의 긴밀한 결합 통합 및 조각, 더 나은 번들화 '클래스' 를 사용하여 정보를 전달하는 데. 할 수 있는 방법을 제미다타 () 또는 '에서' 조각 '및' 상속됨 구현됩니까 인터페이스입니다 그레이스티비티 여부를 확인할 수 있습니다 '에서' 을 반환하는지 인터페이스입니다 오나타크 instanceof ' ()'.

Burak Öztürk
그는 4년 전 댓글을 달았습니다
1

이 솔루션은 best for me. 또한 공식 선언할 수 없습니다 () 메서드를 제미다타 미스트링 경우

Richmond
그는 4년 전 댓글을 달았습니다
1

현재 수락됨 오토메이티드 null 포인터를 되돌려줍니다 예외가 아니다. 이 수락됨 답을 해야 합니다.

Martin Marconcini
그는 4년 전 댓글을 달았습니다
7
    • 포지셔닝합니다 수락됨 오토메이티드 안 합니다. 물론 이러한 쉽게 피할 수 있다. 이는 일반적으로 하면 안 좋은 생각, 쓸모없는 권능은하나님께 조각이 아니라, re going to use it 묶임 you& # 39 만 조각을 가지고 있지 않은 경우 충족되었으며 활동까지입니다. 조각이 재사용할 수 없는 또 다른 문의처입니다.

180 i&, ve (stackoverflow.com) 이 질문에 대한 답을 찾을 수 있지만 정확한 말해둘꼐요 많이유 frequencyid @:

&quot android&quot 수 있는 데이터 전송, 조각, 활동.

  • Activity:*

        Bundle bundle = new Bundle();
        String myMessage = "Stackoverflow is cool!";
        bundle.putString("message", myMessage );
        FragmentClass fragInfo = new FragmentClass();
        fragInfo.setArguments(bundle);
        transaction.replace(R.id.fragment_single, fragInfo);
        transaction.commit();

  • Fragment:*

의 값이 판독값 조각

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Bundle bundle = this.getArguments();
        String myValue = bundle.getString("message");
        ...
        ...
        ...
        }

스피커에만

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        String myValue = this.getArguments().getString("message");
        ...
        ...
        ...
        }

Jorgesys
Martin Pfeffer
그는 5년 전 댓글을 달았습니다
0

아마 가장 적합한 방법을 업데이팅이 검색 결과 언크리티스쓰브미스 that& # 39, s not in a 목록보기 중첩됩니다 있는 한 조각 (소미브로디 보낼 경우 빠르게 두 번, 그는 곧 두 번째 유형은 args)?

Dario
그는 3년 전 댓글을 달았습니다
0

문자열 또는 int 린스테드 객체에는 어때?

이 질문에 늦었음요 수 있습니다. 그러나 향후 유용하게 사용할 수 있다.

받긴 기준은 다음과 같다. 나는 암호화된 파일의 강조표시할 위한 의도. 특정 부분의 자세한 프로세스 및 선택한 파일 전달됩니다. 나는 많은 부분 파일 기능을 갖는 것이 되고 있다. 당시 조건 확인 및 내려받습니다 조각 등을 통과시킬 때마다 값이 상당히 역겨운. 그래서 결정한 전달하십시오 사용하여 값을 인터페이스입니다.

  • 단계 1:* 만듭다 인터페이스입니다 주 활동까지입니다.

   public interface SelectedBundle {
    void onBundleSelect(Bundle bundle);
   }

  • 단계 2:* 셀레스테드번들 참조입니다 만듭다 같은 컨트롤러상의 활동

   SelectedBundle selectedBundle;

  • 단계 3:* 만듭다 방법을 동일한 활동

   public void setOnBundleSelected(SelectedBundle selectedBundle) {
       this.selectedBundle = selectedBundle;
   }

  • 부분 참조) 이 필요한 모든 기능을 할 수 있는 초기화 단계 4:* 셀레스테드번들 필리피커. 이 코드를 배치한 조각 '방법' 에 언크리티비우 (.)

    ((MainActivity)getActivity()).setOnBundleSelected(new MainActivity.SelectedBundle() {
          @Override
         public void onBundleSelect(Bundle bundle) {
            updateList(bundle);
        }
     });

  • 이 값을 사용하여 단계 5:* 요나스티비타이어술트 &solarisdvd 마리나스티비티 전달하십시오 조각을 인터페이스입니다.

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent  data) {
       selectedBundle.onBundleSelect(bundle);
  }

그게 전부다. 당신이 필요로 하는 모든 부분에 대한 구현하십시오 프레이크망클레스. 틀렸다니까 멋지구리해요. 그렇게 할 수 있습니다. 와우.

조각 (F) 는 자체 유지하는 기본적인 개념은 UI 구성 요소를 만드는 데 사용할 수 있는 안드로이드 애플리케이션. 이 절이 포함된 공통 (best) 에서 활동 및 통신 경로를 만드는 방법은 여러 가지 &gt -; F, 파, 이 때문에 해당 부분을 분리 후 활동을 통해 서로 통신하려면 합니다 f f 및 자체 나오게 되었다.

그래서 반군지역 데이터가 &gt -; F 는 동일합니까 의해 설명 될 수 있다는 답변을 생성 후 ρяσѕρєя K. 또한 δ1 활동, 또한 이 데이터를 전달하는 방법으로 호출하십시오 조각 조각 조각.

예를 들면 다음과 같습니다.

    ArticleFragment articleFrag = (ArticleFragment)
                    getSupportFragmentManager().findFragmentById(R.id.article_fragment);
    articleFrag.updateArticleView(position);

당시 가장 쉽고 데이터 전송 및 조각 인스턴스입니다 외곽진입 목소리가 커지고 있다.

  • 모든 부분 기본적으로 %s/dbase/ext_table. 인스턴스입니다 메서드입니다 *

&gt. 예를 들면 다음과 같습니다. &gt. 마리 프레이크망 이름님은 경우 부분

그러므로 너희는 문의 조각 활동 다음과 같습니다.

getSupportFragmentManager().beginTransaction().add(R.id.container, MyFragment.newInstance("data1","data2"),"MyFragment").commit();

  • 로드리d.콘타이너 id 는 내 프라메라리우스 *

  • so 의 마리 프레이크망. 윈스턴스 (,, data2&quot &quot data1&quot ";) 에 조각 조각 및 데이터를 전송할 수 있습니다 너회가 afaq afnor data-in 마리 프레이크망 네윈스턴스 (구체화하십시오 param1, 문자열 param2) *

public static MyFragment newInstance(String param1, String param2) {
        MyFragment fragment = new MyFragment();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }
, # 39 의 다음 부분은 방법을 언크리치 you& ll 내려받습니다 데이터:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }

&gt. 그래서 지금 가지고 있는 data2 mParam2 mParam1 data1

&gt. 이제 이 mParam2 mParam1 및 해당 부분을 사용할 수 있습니다.

shaurya uppal
그는 3년 전 댓글을 달았습니다
0

r. 이드리콘타이너 지정하십시오. 여기서요? 근접어 R. id.container_current ldmf 는 int value.

Pre_hacker
그는 3년 전 댓글을 달았습니다
0
  • 로드리d.콘타이너 @s id 는 내 프라메라리우스
sam
그는 일 년 전 댓글을 달았습니다
0

현재까지 이 최적의 설명 I& # 39 의 데이터를 사용하는 것으로, ve ever 전달하십시오 추가 / 복귀시킴 조각 조각 감독이다. 같은 작동됨 컴팩트형! 감사합니다!

그 차이는 대부분의 업보테드 초보자 대한 추가 싶다 2 여기에 대답을 한 조각을 다양한 활용 정의된다.

자바 클래스 내의 데이터를 사용할 경우 부분 가지는 데이터를 전달하는 첫 번째 대답을 적용하십시오 전달할 수 있습니다.

Bundle bundle = new Bundle();
bundle.putString("edttext", "From Activity");
Fragmentclass fragobj = new Fragmentclass();
fragobj.setArguments(bundle);

그러나 예를 들어 기본값입니다 코드를 사용하는 안드로이드 탭 조각, Studio 에서 제공한 이 코드를 작동하지 않습니다.

이 경우에도, 심지어 대체하는지 기본값입니다 플라치홀더프레이크망 작동하지 않을 경우 새로운 상황에 맞게 프레이크망클라시스 프레이크망파거섬프터 수정하십시오 추가에는 제이테마 위한 스위치 (), 또 다른 스위치의 제프 아제이틀리 () 같이 [here] [1])

  • 경고: 클립 위에서 언급한 는 코드 오류, 어떤 난 설명하란말야 나중에 임무야, 과연 어떻게 editable code for you go 에서 기본 코드 조각을 볼 수 있는 유용한 탭)! 내 남은 오토메이티드 경우 자바 클래스 및 xml 파일을 만드는 것을 훨씬 감지에서 포지셔닝합니다 클리핑할 (담당자에서 의해 처음 사용하기 위해 탭 조각을 초보자 책정안) *

무엇보다 중요한 것은 이 페이지에서 업보테드 오토메이티드 가장 기본 코드 조각, 이 절이 탭 작동하지 않을 수 있다는 점에서 다른 사용되는 자바 클래스: 프레이크망파거섬프터!

따라서 만들 수 있는 데이터를 전송하기 위해서는 틀렸다니까 하고 있는 사용하여, 통과시킬 번들화 모테라치비타이 프레이크망파거섬프터 오토메이티드 뛰시는군요 2.

해당 문제가 다시. ( 아마 할 수 있는 it like that, 정말 필요한 것이 없는 단순한 합병증 ).

그렇게 하는 것이 올바른 생각한다 / 쉽게 통과할 수 없는 문제가 있는 조각을 사용하여 데이터를 직접 오토메이티드. 2. 예, 있을 수 있지만, 탭 조각을 위한 활동 및 조각이 사이의 긴밀한 결합, 즉 같은 것으로 나타났다. 난 심지어 조언을 모테라치비타이 탭 조각을 만들 수 있는 java class (클래스) 로 사용할 수 있기 때문에, 그들은 결코 위부의 모테라치비타이) - 추가하기만 모테라치비타이 쉽게, java 클래스 내의 많은 부분 필요한 다음과 같습니다.

 public static class Tab1 extends Fragment {

    public Tab1() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.your_layout_name_for_fragment_1, container, false);
        return rootView;
    }
}.

따라서 이런 부분을 프라이빗 데이터를 전달하는 &solarisdvd 모테라치비타이 합니다 / 번들에는 문장열 언크리치 위의 네 엄마가 활동 - 칠 수 있는 데이터와 함께 전달할 수 있는 방법을 통해 그들을 조각, 그리고 전달하십시오 이후에 만들어진 언크리치 (여기서는 제미다타 ()).

public class MotherActivity extends Activity {

    private String out;
    private Bundle results;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mother_activity);

       // for example get a value from the previous activity
        Intent intent = getIntent();
        out = intent.getExtras().getString("Key");

    }

    public Bundle getMyData() {
        Bundle hm = new Bundle();
        hm.putString("val1",out);
        return hm;
    }
}

클래스 (class) 의 조각 후 제미다타 사용할 수 있습니다.

public static class Tab1 extends Fragment {
        /**
         * The fragment argument representing the section number for this
         * fragment.
         */
        public Tab1() {
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.your_layout_name_for_fragment_1, container, false);
            TextView output = (TextView)rootView.findViewById(R.id.your_id_for_a_text_view_within_the_layout);

            MotherActivity activity = (MotherActivity)getActivity();

            Bundle results = activity.getMyData();
            String value1 = results.getString("val1");

            output.setText(value1);
            return rootView;
        }
    }

나는 그들에게 조언을 모테라치비타이 경우 데이터베이스 질의를 할 수 있습니다 (반드시 그 결과에 따라 문장열 / 정수 첨부됩니다 위와 같이 번들화 안에 키) 을 탭 조각을 될 인사이드라면 너회의 구문을 더 복잡한 (예를 들어, 및 그레이튼트 그레이스티비티 () 가 된다 () 이 그레이스티비티 리게티튼트), 원하는 대로 할 수 있는 옵션이 확장하지만 바 있다.

초보자도 내 충고를 small steps 집중할 수 있다. 첫째, 의도 없이 모든 데이터를 반군지역 전달하십시오 열 수 있는 매우 간단한 탭 활동. 작동합니까? 예상한 탭들 열어보려면 있습니까? 그렇지 않으면 왜?

처음부터 그 등재되어 있는 등 솔루션 및 적용해 [이 클리핑할] [1], 보고 어떻게 누락되었습니다. 이를 위해 이 특정 클립과만 마리나스티비티.1믈 볼 수 없다. 그렇게 될 줄 수 있습니다. 예를 들어, 만일 너희가 주목하고 있는 것을 확인할 수 있습니다 잘못된 부분을 컨텍스트로 (툴과도 컨텍스트로.) 는 xml 파일을. 각 부분의 조각이 가리키십시오 xlm 요구사항뿐 올바른 클래스 (또는 하위 name. domain. seperator $).

또한 필요한 것을 볼 수 있는 자바 클래스 주 작업 (사비에우파거) - 추가 타바레이우트리스토프 비트비에우파거 선 직후 타바레이우스 타바레이우스 = (타바레이우스) 핀드비에우베이드 (R. 이드스타브스); 실제로 이 선이 연결되어 있지 않고, 보는 XML 파일 조각, 하지만 유일하게 xml 파일을 [email protected] 기본 활동까지입니다.

주요 활동 외에도 줄을 java 클래스, main 활동을 할 때 자신의 상황에 맞게 XML 파일을 탭들 변경하십시오 (예를 들어 다비트럼스 추가 / 제거). 탭들 main 활동을 할 수 없는 경우 올바른 활동 유형을 만든 XML 관심용 선택하지 않았을 때 제일 (새로운 작업 - 탭 작업).

지난 3 단락 유념하십시오 얘길 해도 비디오! 내가 말하는 것은 외면하였나니 주 활동 XML 주요 활동 XML 이 비디오는 모테라치비타이 있는 현재의 상황을 는 XML 파일을.

[1]: https://www.youtube.com/watch? v =, = PL200JxfhYIgAfRaMIg7aIIjLrpM9EiAdl 00LLd7qr9sA&amp 목록

비동기 (콘크리트 의 하위 클래스) 에 대한 참조입니다 전달하는 경우 조각 조각 작업을 직접 액세스할 수 있습니다.

일부 조각이 참조입니다 꽂으십시오 비동기 방식으로 반군지역 작업:

  • 비동기 작업은 완전히 경우 본격적인 클래스 (class 푸트라크 라이너스타스크 연장시킵니다 ''), 네 조각을 구성자를 꽂으십시오 전달하는 것입니다.
  • 비동기 작업은 경우 내부 클래스, 그냥 최종 조각을 너희가운데 변수를 정의하면, 또는 필드로 유효범위 비동기 작업은 외부 층의 구분된다. # 39 에서 이용할 수 있게 될 겁니다, you& 안쪽 구분된다.
Leon Armstrong
그는 8년 전 댓글을 달았습니다
0

아주 조금 더 그런 것 맞습니다 대답을 다는일은, 일부 제공함으로써 확장하십시오 예제 코드 하면 되죠?

활동, '에서' 번들화 사용하여 데이터를 보낼 수 있다.

Bundle bundle = new Bundle();
bundle.putString("data", "Data you want to send");

// Your fragment
MyFragment obj = new MyFragment();
obj.setArguments(bundle);

또한 '조각' 언크리티비우 메서드입니다 내려받습니다 데이터:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{
    String data = getArguments().getString("data");// data which sent from activity  
    return inflater.inflate(R.layout.myfragment, container, false);
}

그래도 난 감히 추가하기에서는 게시물로의, 매우 오래된 것으로, 그동안 대한 설명이 거의 도움됐네 me.&lt p&gt. 기술적으로 직접 설정할 수 있는 모든 종류의 조각은 멤버여야 충스러웠으니 activity.&lt br>; 그렇다면 왜 번들에는 &lt br&gt?;; 그 이유는 아주 단순해졌습니다 -;; -) 는 균일한 방법으로 번들화 handle:&lt br&gt 생성하거나 여는 fragment&lt br>;

  • reconfiguration (화면 순환부터) - () 에 대한 초기 / 업데이트되도록 추가하기만 번들화 우트국가 온사베인스턴스국가 &lt br>;
  • app 복원되었음을 받은후 쓰레기요 백그라운드에서 수집됩니다 같이 reconfiguration) .&lt p>; 간단히 상황을 만들 수 있습니다 (맘에 실험) 해결 방법이 있지만, 그냥 한 조각 및 1 천 t # 39 번들에는 외곽진입 doesn& 차이를 볼 수 있는 상태로 유지됩니다 박스타크 - 단순하고 쉽습니다. # 39 에 의해 오토메이티드 That& br&gt &lt, 왜 @Elenasys 가장 우아하고 범용 solution.&lt br>; , 와 # 39 는 특히 @Martin that& srdf/s 왜 오토메이티드 주어진다.

가끔 내 정보를 전달해야 하는 의도 받을 수 있습니다 진실이며당신이 사용자의 작업 활동을 하였다. 확인을 할 경우 그 대답이 주어진 부분 시작합니다. 신앙이니라 it& # 39 의 작동하고 있지 스테거멘츠 () ',' 매우 유용합니다. 또 다른 문제가 발생할 경우 생길 수 있는 정보를 상호 ᅴ 통과시켰다. 이 경우 같은 일이 있기 때문에 금방 알 수 없습니다 () '안드로이드' 를 호출하십시오 마리 프레이크망스파스트라다 스레드할 만 볼 수 있는 어떤 창조하 상호 작용할 수 있습니다.

그래서 제 제안은 사용 된다. 이쪽요 어디서부터든 활동 등, 데이터를 보낼 수 있지만 작업 내에서 수행될 fragment& # 39 의 컨텍스트입니다.

39 의 '에서는 fragment& 언크리치 ()'.

protected DataReceiver dataReceiver;
public static final String REC_DATA = "REC_DATA";

@Override
public void onCreate(Bundle savedInstanceState) {

    data Receiver = new DataReceiver();
    intentFilter = new IntentFilter(REC_DATA);

    getActivity().registerReceiver(dataReceiver, intentFilter);
}

private class DataReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        int data= intent.getIntExtra("data", -1);

        // Do anything including interact with your UI
    }
}

에서는 활동:

// somewhere
Intent retIntent = new Intent(RE_DATA);
retIntent.putExtra("data", myData);
sendBroadcast(retIntent);

더 나은 외곽진입 송신용입니다 데이터 클래스 부분은 반군지역 할당 메서드를 통해 활동. 같은 br/&gt <;

FragmentClass fragmentClass = new FragmentClass();
fragmentClass.setMyList(mylist);
fragmentClass.setMyString(myString);
fragmentClass.setMyMap(myMap);

그리고 class 의 데이터를 얻을 수 있습니다.

Gerard
그는 4년 전 댓글을 달았습니다
0

이 경우, 이전에 따라 또 다른 것은 매우 편리하게 반군지역 Extra& 설정되었습니다 # 39 의

yozhik
그는 2년 전 댓글을 달았습니다
0

필요한 경우 해당 부분을 설정할 수 있으며, 일부 데이터 필드에서 it& # 39 의 읽어봤어 가시적입니다 (초기화되었습니다) you& # 39, ll get NPE.

ssi-anik
그는 2년 전 댓글을 달았습니다
0

내가 안드로이드 사용 될 수도 있고, 3 년 전만 해도 이런 것들을 중지되었는지 사용되지 않는 요즘.

Marny Lopez
그는 2년 전 댓글을 달았습니다
0

작동안함 현재. 이 질문에 대한 대답은 번들화 업데이트하십시오 사용합니다.

'활동,' 할 필요가 있는 경우 '조각' 작업을 수행할 수 있는 가장 쉬운 방법은 후에 초기화하려면 갖고 있는 '조각' 에 의해 '활동,' 메서드를 호출할 때 인스턴스입니다. '조각' 의 추가하기에서는 방법:

public class DemoFragment extends Fragment {
  public void doSomething(String param) {
      // do something in fragment
  }
}

'다음' 조각 '의 활동,', '조각' 를 사용하여 액세스하십시오 관리자 및 security. '방법':

public class MainActivity extends FragmentActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        DemoFragment fragmentDemo = (DemoFragment) 
            getSupportFragmentManager().findFragmentById(R.id.fragmentDemo);
        fragmentDemo.doSomething("some param");
    }
}

그리고 '이' 방법 '이' 조각 '를 호출하여 활동,' 직접 통신할 수.

Young Emil
그는 3년 전 댓글을 달았습니다
1

이거 정말 좋은 원하지 않을 수 있다는 점에서 '조각' 방법을 언크리티비우 입력할 수 있습니다. 정말 도움됐네

다음과 같은 인터페이스를 사용하여 서로 통신하려면 활동 및 조각

public interface BundleListener {
    void update(Bundle bundle);
    Bundle getBundle();
}

이 같은 방법을 사용하여 인터페이스입니다 통신을 사용하거나 일반 리스너에 2

 /**
 * Created by Qamar4P on 10/11/2017.
 */
public interface GenericConnector<T,E> {
    T getData();
    void updateData(E data);
    void connect(GenericConnector<T,E> connector);
}

조각 표시 방법

public static void show(AppCompatActivity activity) {
        CustomValueDialogFragment dialog = new CustomValueDialogFragment();
        dialog.connector = (GenericConnector) activity;
        dialog.show(activity.getSupportFragmentManager(),"CustomValueDialogFragment");
    }

네 컨텍스트로 제네리코네스 '에서' 로 변환할 수 있습니다 '너무' 오나타크 (Context)

자신의 활동

CustomValueDialogFragment.show(this);

이 부분

...
@Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        connector.connect(new GenericConnector() {
            @Override
            public Object getData() {
                return null;
            }

            @Override
            public void updateData(Object data) {

            }

            @Override
            public void connect(GenericConnector connector) {

            }
        });
    }
...
    public static void show(AppCompatActivity activity, GenericConnector connector) {
            CustomValueDialogFragment dialog = new CustomValueDialogFragment();
            dialog.connector = connector;
            dialog.show(activity.getSupportFragmentManager(),"CustomValueDialogFragment");
        }

참고: 마치 전혀 사용하지 않는 ',' (), &quot &quot 네스토스트링 네스토스트링 () (), 네스토스트링 것입니다.

엘리트 사이에서 데이터를 한 조각 및 활동 및 테스트되었습니다 반군지역 길을 만드는 것이 변수 (예:

class StorageUtil {
  public static ArrayList<Employee> employees;
}

그 후 활동을 통해 데이터를 전달하는 조각이 있는, 우리는 승인하십시오 요나스티비티크리스트 방법:

//a field created in the sending fragment
ArrayList<Employee> employees;

@Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
         employees=new ArrayList();

       //java 7 and above syntax for arraylist else use employees=new ArrayList<Employee>() for java 6 and below

     //Adding first employee
        Employee employee=new Employee("1","Andrew","Sam","1984-04-10","Male","Ghanaian");
        employees.add(employee);

      //Adding second employee
       Employee employee=new Employee("1","Akuah","Morrison","1984-02-04","Female","Ghanaian");
         employees.add(employee);

        StorageUtil.employees=employees;
    }
어디에서든 스토라게티우스렘프로이스 의 값을 얻을 수 있습니다. 굿럭!

얻을 수 있는 공용 정적 메서드에 조각을 만들 수 있습니다 다음 해당 부분을 정적임 참조 데이터를 전달하는 기능을 하는 인수를 통해 데이터를 얻을 수 있는 방법 및 데이터 세트를 그레타르구멍 언크리치 와 동일한 방식으로 지역 변수를 설정하고 그 부분에 대한 데이터를.

그냥 발견했다 이 질문에 대해 대다수 위 방법 작동합니다. 난 그냥 사용할 수 있는 추가 이벤트 버스 라이브러리란, 특히 구성 요소 (작업또는 부분) 작성하지 않은 경우에, 그 모든 규모의 프로젝트 및 많은 좋은 안드로이드 활용 사례. 제가 개인적으로 보유하고 있는 it 에 사용되는 여러 프로젝트를 내가 플레이 스토어.

내가 사용하는 동안 탐색 아키텍처입니다 컴포넌트인지 최신값 실행했음 유사한 문제가 된다. 위에서 언급한 모든 것을 사용하여 코드 번들화 from my 호출하십시오 시험해 활동을 하였다.

안드로이드 최신 동향을 사용하는 것이 최상의 솔루션을 개발, 다음 뷰 (view) 모델 (부품 안드로이드 제트 팩).

상위 클래스를 만들고 초기화하지 비에프모델 유념하십시오 활동 및 조각 활동, 이 비에프모델 공유할 수 있다.

이제 안의 모비베크리스트 () 이 같은 비에프모델 초기화하지 조각, 설치 및 듣는 옵저버입니다 비에프모델 보다 작은 자연수이다.

이 경우, 심층 자습서는 한 몫을 할 수 있습니다.

https://medium.com/mindorks/how-to-communicate-between-fragments-and-activity-using-viewmodel-ca733233a51c

내 솔루션은 정적 방법을 쓸 수 있는 부분.

public TheFragment setData(TheData data) {
    TheFragment tf = new TheFragment();
    tf.data = data;
    return tf;
}

이렇게 확신할 수 있는 모든 데이터가 조각이 전에 작업을 할 수 있는 다른 가능한 데릭쉐퍼드와 안쪽에 작동합니까 거잖나. 또 더 좋은 것 같은데 내 목소리를 높였다.

Matteo
그는 4년 전 댓글을 달았습니다
0

39, re 오른쪽맞춤, 아마도 you& 정적임 되어야 합니다.

Martin Marconcini
그는 4년 전 댓글을 달았습니다
1

뭐, 스레드할 있지 않을 경우 데이터 있기 때문에 반드시 용서하실것이며 스레드할 정적임 안전 문제. 이렇게 신경을 써야 한다. 정적임 스레드할 안전하다구요 자연이 아니다.

정적 변수를 선언할 수 있는 활동

public static HashMap<String,ContactsModal> contactItems=new HashMap<String, ContactsModal>();

그 후 해당 부분을 좋아해 준수하십시오

ActivityName.contactItems.put(Number,contactsModal);

Edric
M Shaban Ali
그는 일 년 전 댓글을 달았습니다
0

그러나 이 작동하지 않는 것이 좋습니다. 기억에 남을 따라 정적 멤버 한 So 의 경우 최근 애플리케이션 app 가 강제 마감 필요할 때 사용할 경우에만 정적 멤버 이렇게 많은 활동 전반에 걸쳐 있는 app.