2014-04-30 2 views
0

분열에 문제가 있으며 시작 활동 후 바로 이것을 호출합니다.분열성에서 특정 분열을 시작하는 방법

나는 3 개의 단편으로 분획 활성을 갖는다. 왼쪽에서 오른쪽으로 또는 오른쪽에서 왼쪽으로 또는 탭 위로 스 와이프하여 조각을 선택할 수 있습니다.

하지만 이제는 조각 No.0이 아닌 활동을 시작하는 것이 좋습니다. 조각 번호 1 또는 2로 시작하는 것이 좋습니다.

어떻게 알 수 있습니까?

답변

0

원하는 조각을 지정하는 인 텐트에 추가를 추가 한 다음 onCreate() 내부의 의도를 확인하십시오. 당신의 활동에서 다음

Intent intent = new Intent(this, ActivityWithFragments.class); 
intent.putExtra("start_index", 2); 
startActivity(intent); 

: 인덱스가 충분한 경우,이 같은 것을 할 수

@Override 
protected void onCreate(Bundle saved) { 
    super.onCreate(saved); 

    /* normal onCreate code: setContentView, findViewById, etc...*/ 

    final Intent intent = getIntent(); 
    int startIndex = intent.getIntExtra("start_index", 0); 
    // use startIndex to show the appropriate fragment 
} 
0

당신은 setCurrentItem을 (사용)을

myPagerAdapter = new MyPagerAdapter(getSupportFragmentManager(), this); 
    viewPager.setAdapter(myPagerAdapter); 
    viewPager.setCurrentItem(1); // 1 for page No. 1 
0

네, 감사합니다 흠뻑.

그게 전부입니다.

코드가 정확히 무엇을하고 새로운 부분을 구현했는지 이해하는 데 더 많은 시간이 필요했습니다.

하지만 지금은 잘 돌아가고 있으며, 내가 좋아하는 것을합니다. :-)

다른 이해 관계자의 경우 아래 코드를 작성합니다.

package com.example.packagename; 

import android.os.Build; 
import android.os.Bundle; 
import android.annotation.SuppressLint; 
import android.app.ActionBar; 
import android.app.FragmentTransaction; 
import android.content.SharedPreferences; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.view.ViewPager; 

public class Main_Activity extends FragmentActivity 
{ 
    ViewPager viewPager; 

    PagerAdapterSection sectionsAdapter; 

    PagerAdapterTab tabAdapter; 
    ActionBar actionBar; 

    private SharedPreferences spActivityLaunch; 
    private SharedPreferences.Editor spEditorActivityLaunch; 
    private int startFragmentIndex; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     this.spActivityLaunch = this.getSharedPreferences("ActivityLaunchSettings", 0); 
     this.startFragmentIndex = spActivityLaunch.getInt("FragmentNo", 0); 

     if(Build.VERSION.SDK_INT >= 11) 
     { 
      setupTabsUpSDK11(); 
     } 
     else 
     { 
      setupTabsLowerSDK11(); 
     } 
    } 

    @SuppressLint("NewApi") 
    private void setupTabsUpSDK11() 
    { 
     setContentView(R.layout.main_layout); 

     tabAdapter = new PagerAdapterTab(getSupportFragmentManager()); 
     viewPager = (ViewPager)findViewById(R.id.pager); 
     viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() 
      { 
       @Override 
       public void onPageSelected(int position) 
       { 
        actionBar = getActionBar(); 
        actionBar.setSelectedNavigationItem(position); 

        spEditorActivityLaunch = spActivityLaunch.edit(); 
        spEditorActivityLaunch.putInt("FragmentNo", position); 
        spEditorActivityLaunch.commit(); 
       } 
      }); 
     viewPager.setAdapter(tabAdapter); 

     actionBar = getActionBar(); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     ActionBar.TabListener tabListener = new ActionBar.TabListener() 
     { 
      @Override 
      public void onTabReselected(android.app.ActionBar.Tab tab, FragmentTransaction ft) 
      { 
      } 
      @Override 
      public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) 
      { 
       viewPager.setCurrentItem(tab.getPosition()); 
      } 
      @Override 
      public void onTabUnselected(android.app.ActionBar.Tab tab, FragmentTransaction ft) 
      { 
      } 
     }; 
     actionBar.addTab(actionBar.newTab().setText("Fragment1").setTabListener(tabListener)); 
     actionBar.addTab(actionBar.newTab().setText("Fragment2").setTabListener(tabListener)); 
     actionBar.addTab(actionBar.newTab().setText("Fragment3").setTabListener(tabListener)); 

     viewPager.setCurrentItem(startFragmentIndex); 
    } 

    private void setupTabsLowerSDK11() 
    { 
     setContentView(R.layout.main_layout_lower_version); 

     sectionsAdapter = new PagerAdapterSection(getSupportFragmentManager()); 
     viewPager = (ViewPager) findViewById(R.id.pager); 

     viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() 
     { 
      @Override 
      public void onPageSelected(int position) 
      { 
       spEditorActivityLaunch = spActivityLaunch.edit(); 
       spEditorActivityLaunch.putInt("FragmentNo", position); 
       spEditorActivityLaunch.commit(); 
      } 
     }); 

     viewPager.setAdapter(sectionsAdapter); 

     viewPager.setCurrentItem(this.startFragmentIndex); 
    } 
} 
관련 문제