2016-01-06 98 views
-1

我正在關注查看頁面的這個例子,但我不知道如何調用這個類。呼叫查看尋呼機的靜態類

這是

public class FirstFragment extends Fragment { 
    // Store instance variables 
    private String title; 
    private int page; 

    // newInstance constructor for creating fragment with arguments 
    public static FirstFragment newInstance(int page, String title) { 
     FirstFragment fragmentFirst = new FirstFragment(); 
     Bundle args = new Bundle(); 
     args.putInt("someInt", page); 
     args.putString("someTitle", title); 
     fragmentFirst.setArguments(args); 
     return fragmentFirst; 
    } 

    // Store instance variables based on arguments passed 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     page = getArguments().getInt("someInt", 0); 
     title = getArguments().getString("someTitle"); 
    } 

    // Inflate the view for the fragment based on layout XML 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_first, container, false); 
     TextView tvLabel = (TextView) view.findViewById(R.id.tvLabel); 
     tvLabel.setText(page + " -- " + title); 
     return view; 
    } 
} 

這裏我試圖調用類的片段

public class MainActivity extends AppCompatActivity { 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.register); 
    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

MyPagerAdapter.getItem(1); 
} 

    public static class MyPagerAdapter extends FragmentPagerAdapter { 
    private static int NUM_ITEMS = 3; 

     public MyPagerAdapter(FragmentManager fragmentManager) { 
      super(fragmentManager); 
     } 

     // Returns total number of pages 
     @Override 
     public int getCount() { 
      return NUM_ITEMS; 
     } 

     // Returns the fragment to display for that page 
     @Override 
     public Fragment getItem(int position) { 
      switch (position) { 
      case 0: // Fragment # 0 - This will show FirstFragment 
       return FirstFragment.newInstance(0, "Page # 1"); 
      case 1: // Fragment # 0 - This will show FirstFragment different title 
       return FirstFragment.newInstance(1, "Page # 2"); 
      case 2: // Fragment # 1 - This will show SecondFragment 
       return SecondFragment.newInstance(2, "Page # 3"); 
      default: 
       return null; 
      } 
     } 

     // Returns the page title for the top indicator 
     @Override 
     public CharSequence getPageTitle(int position) { 
      return "Page " + position; 
     } 

    } 

} 
+0

您是否收到任何錯誤或什麼? –

回答

1

當應用於類,static意味着,內部類不參考保持到外環境。它的行爲不像static方法。如果你想調用一個靜態類的方法,你仍然需要該類的有效對象引用。例如。

MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager()); 
    adapter.getItem(1); 

在這種特殊情況下,我強烈建議您不要使用這種方法。 ViewPager調用getItem來實例化Fragment。在適配器的引用上明確調用它不會返回相同的實例Fragment

+0

如果不明確,那麼我應該怎麼稱呼viepager? – Moudiz

+0

你需要在'ViewPager'實例上調用'setAdapter'。 – Blackbelt

+0

啊你的權利,你知道一個很好的教程/示例網站關於查看傳呼機? Android文檔不提供太多 – Moudiz