2017-11-15 68 views
-1

Hello Stackoverflow 커뮤니티에서 많은 예제를 살펴 보았지만 코드에 적용 할 수 없습니다. 그래서 나는 다음과 같은 코드가 있습니다MainActivity와 Fragment 사이의 통신

public class Profile extends AppCompatActivity { 

private ViewPager mPager_profile; 
private static final int NUM_PAGES = 3; 
private PagerAdapter mPagerAdapter_profile; 



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

    // set up the slider 
    mPager_profile = (ViewPager) findViewById(R.id.pager_profile); 
    mPagerAdapter_profile = new ScreenSlidePagerAdapter_profile(getSupportFragmentManager()); 
    mPager_profile.setAdapter(mPagerAdapter_profile); 
    // bottom dots 
    TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout_profile); 
    tabLayout.setupWithViewPager(mPager_profile, true); 

    Intent intent = getIntent(); 
    String[] data = intent.getStringArrayExtra("data"); 

} 

// some code here 
... 

private class ScreenSlidePagerAdapter_profile extends 
FragmentStatePagerAdapter { 
    public ScreenSlidePagerAdapter_profile(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     switch (position){ 
      case 0: 
       return new event_slide(); 
      case 1: 
       return new profile_slide(); 
      case 2: 
       return new option_slide(); 
      default: 
       return null; 

     } 
    } 

    @Override 
    public int getCount() { 
     return NUM_PAGES; 
    } 
} 

}

을 다음 코드 내 event_slide.java 조각입니다 :

public class event_slide extends android.support.v4.app.Fragment{ 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstance){ 
     ViewGroup eventView = (ViewGroup)inflater.inflate(R.layout.login_event, container, false); 

     return eventView; 
    } 
} 

내 질문은 : 어떻게라는 문자열 배열을 전달할 수 있습니다 " data "를 내 Fragment event_slide에 추가하고 예 (String ->) data [0]을 TextView의 하나 (예 : findViewById (R.id.textView9) .setText (data [0]))에 적용하는 것보다 좋습니다. 나는 안드로이드 개발에 익숙하지 않으므로 간단하게 유지하십시오. 사전에

감사합니다 :)

+0

가능한 복제본 : [이 답변 확인] (https://stackoverflow.com/a/12739968/4329778) –

답변

0

가장 쉬운 방법은 (하지만 최고)이 될 것입니다 :

public class EventSlide extends android.support.v4.app.Fragment{ 

    public String arg1; 

    public EventSlide(String arg1){ 
     this.arg1 = arg1; 
    } 

    // Override OnCreate method, initialize your textView and set your text there 
} 

난 당신이 newInstance 패턴을 살펴 권 해드립니다.