2013-03-31 76 views
0

我總共有超過1000個標籤/頁面可供查看。我希望能夠通過向EditText輸入一個數字來查看任何標籤/頁面,並且當點擊按鈕時,它應該跳轉到指定的標籤。例如,如果我在第1頁上,並且如果我輸入「600」並點擊搜索(按鈕),我應該能夠查看該特定頁面並確保600旁邊的頁面應該是601,601 ....以及之前600應該是599,598 ....使用按鈕切換標籤通過輸入標籤號碼轉到另一個標籤?

public class MainActivity extends FragmentActivity { 
SectionsPagerAdapter mSectionsPagerAdapter; 
ViewPager mViewPager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 

    mViewPager = (ViewPager) findViewById(R.id.pager); 
    mViewPager.setAdapter(mSectionsPagerAdapter); 

} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

public class SectionsPagerAdapter extends FragmentPagerAdapter { 
    public SectionsPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    public Fragment getItem(int position) { 
     switch(position){ 
     case 0: 

     case 1: 
      Ang100s.Ang1 ang1 = new Ang100s.Ang1(); 
      return ang1; 

     case 2: 
      Ang100s.Ang2 ang2 = new Ang100s.Ang2(); 
      return ang2; 
     case 3: 
      Ang100s.Ang3 ang4 = new Ang100s.Ang3(); 
      return ang4; 
     } 
     Help help = new Help(); 
     return help; 
    } 
    @Override 
    public int getCount() { 
     return 1430; 
    } 
    @Override 
    public CharSequence getPageTitle(int position) { 
     Locale l = Locale.getDefault(); 
     for(int i = 1;i < 1430; i++){ 
      if(position == i){ 
       return "Ang " + position; 
      } 
     } 
     return null; 
    } 
} 

public static class Help extends Fragment { 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_main_dummy, 
       container, false); 
     final Button search = (Button) rootView.findViewById(R.id.clicktosearch); 
     final EditText number = (EditText)rootView.findViewById(R.id.number); 
     search.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if(number.getText().toString().equals("1")){ 

       } 
      } 
     }); 
     return rootView; 
    } 
} 
} 

回答

0

隨着ViewPager可以使用setCurrentItem(int),並通過它,你要顯示的項目的索引。另外,您的FragmentPagerAdapter需要能夠爲從0到getCount()之間的任何索引生成一個項目 - 目前情況並非如此。

+0

我試過在OnClick(View v)方法下的Help類中通過實例化 MainActivity main = new MainActivity(); main.mViewPager.setCurrentItem(1); – ivesingh

+0

這不起作用。你應該只有一個MainActivity,你需要調用它的ViewPager。創建另一個MainActivity實例不會做任何有價值的事情(很可能會遇到錯誤)。只有Android操作系統應該實例化你的活動。 – Karakuri

+0

明白了。非常感謝你的幫助 – ivesingh

相關問題