2016-07-27 9 views
1

Ich bin Neuling in Android-Codierung. Ich versuche, Next Button auf MainActivity zu machen, und ich möchte klicken und zum nächsten Fragment gehen (ich habe 3 Fragmente). Bitte führen Sie mich. Mein Code wie unten.Wie mache ich die nächste Seite Button in Android (klicken Sie hier, um zum nächsten Fragment zu gehen)

public class MainActivity extends FragmentActivity { 

private ViewPager mFmPager; 
private TextView mTvSkip; 
private Button mBtnNext; 

private String TAG = "Main" ; 


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

    mTvSkip = (TextView) findViewById(R.id.tvSkip); 
    mBtnNext = (Button) findViewById(R.id.btnFooter); 
    mFmPager = (ViewPager) findViewById(R.id.fmPager); 

    mBtnNext.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Log.i(TAG,"Click"); 

      //TODO make next page(fragment) button 

     } 

    }); 
    final MyPageAdapter adapter = new MyPageAdapter(getSupportFragmentManager()); 
    Log.i(TAG,"onCreate"); 
    final RadioGroup mRdGroup = (RadioGroup) findViewById(R.id.rdGroup); 

    mFmPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
     } 

     @Override 
     public void onPageSelected(final int position) { 
      switch (position) { 
       case 0: 
        mRdGroup.check(R.id.rdBtn1); 
        mTvSkip.setText("SKIP"); 
        mBtnNext.setText("NEXT"); 
        Log.i(TAG,"Case 0"); 
        break; 
       case 1: 
        mRdGroup.check(R.id.rdBtn2); 
        mTvSkip.setText("SKIP"); 
        mBtnNext.setText("NEXT"); 
        Log.i(TAG,"Case 1"); 
        break; 
       case 2: 
        mRdGroup.check(R.id.rdBtn3); 
        mTvSkip.setText(null); 
        mBtnNext.setText("LET'S SIGN UP"); 
        Log.i(TAG,"Case 2"); 

        // mBtnNext.setOnClickListener(new View.OnClickListener() { 
        // @Override 
        // public void onClick(View view) { 
        // Intent i = new Intent(getApplicationContext(),DummyPage.class); 
        // startActivity(i); 
        //Toast.makeText(MainActivity.this, "go to dummy sign up page", Toast.LENGTH_SHORT).show(); 
        //} 
        //}); 
        break; 
      } 

     } 

     @Override 
     public void onPageScrollStateChanged(int state) { 

     } 
    }); 


    mTvSkip.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent i = new Intent(getApplicationContext(), DummyPage.class); 
      startActivity(i); 
      Toast.makeText(MainActivity.this, "go to dummy sign up page", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    mFmPager.setAdapter(adapter); 

    } 
} 

Adapter

public class MyPageAdapter extends FragmentPagerAdapter{ 

public MyPageAdapter(FragmentManager fm){ 
    super(fm); 
} 

public int getCount(){ 
    return 3; 
} 

public Fragment getItem(int position){ 
    if (position == 0) 
     return new OneFragment(); 
    else if (position == 1) 
     return new TwoFragment(); 
    else if (position == 2) 
     return new ThreeFragment(); 
    return null; 
    } 
} 
+0

Kasse 'Fragment Transaktionen' – Shaishav

Antwort

1

Es ist ziemlich einfach, es zu tun mit Ihrem ViewPager:

mFmPager.setCurrentItem(mFmPager.getCurrentItem() + 1, true); 
+0

Wo soll ich es hinstellen? Kannst du es mir genau sagen? Vielen Dank. –

+1

Innerhalb Ihrer 'onClick' Implementierung für' mBtnNext' natürlich – rom4ek

+0

Vielen Dank. Hab einen schönen Tag ^^. –

1

Wenn Sie Ihre Fragmente zu ändern, müssen Sie FragmentManager und seine Methoden verwenden.

+0

Können Sie mir im Detail? Wird dankbar sein. –

+0

Detaillierte Anweisungen - https://developer.android.com/training/implementing-navigation/lateral.html –

0

Versuchen Sie dies in Ihrer Aktivität.

public static void setFragmentPage(int i) { 
      pager.setScrollDurationFactor(1); 
      pager.setCurrentItem(i, true);   
     } 

Rufen Sie diese in Ihrem Fragment Knopf

activity.setFragmentPage(0); 
Verwandte Themen