2016-03-24 16 views
0

私はアンドロイドを新しくしています。この投稿に続くguideに従うと、スライディングタブを作成することができます。 3つのタブと3つのフラグメントが作成されています。しかし、個々の断片をどのように編集して自分が望むことができるのか理解できません。Androidの断片ですか?

は私が

  • 第一の断片が2 TextViewに私は私のロジックのコードを書くことができ&を持つようにしたいと仮定しますか?
  • 2番目のフラグメントは1のテキストビューを持ちます&ロジックコードはどこで書けますか?
  • 3番目のフラグメントは4つのテキストビューを持ちます&ロジックコードはどこに書き込めますか?

現在、私は3つのjavaファイルがあります。

  • MainActivity

    public class MainActivity extends AppCompatActivity { 
    TabLayout tabLayout; 
    ViewPager viewPager; 
    
    public static String POSITION = "POSITION"; 
    
    @Override 
    public void onSaveInstanceState(Bundle outState) { 
        super.onSaveInstanceState(outState); 
        outState.putInt(POSITION, tabLayout.getSelectedTabPosition()); 
    } 
    
    @Override 
    protected void onRestoreInstanceState(Bundle savedInstanceState) { 
        super.onRestoreInstanceState(savedInstanceState); 
        viewPager.setCurrentItem(savedInstanceState.getInt(POSITION)); 
    } 
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
    
        // Get the ViewPager and set it's PagerAdapter so that it can display items 
        ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); 
        viewPager.setAdapter(new SampleFragmentPagerAdapter(getSupportFragmentManager(), 
          MainActivity.this)); 
    
        // Give the TabLayout the ViewPager 
        TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs); 
        tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 
        tabLayout.setTabMode(TabLayout.MODE_FIXED); 
        tabLayout.setupWithViewPager(viewPager); 
    
  • PageFragment

    public class PageFragment extends Fragment { 
    public static final String ARG_PAGE = "ARG_PAGE"; 
    
    private int mPage; 
    
    public static PageFragment newInstance(int page) { 
        Bundle args = new Bundle(); 
        args.putInt(ARG_PAGE, page); 
        PageFragment fragment = new PageFragment(); 
        fragment.setArguments(args); 
        return fragment; 
    } 
    
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        mPage = getArguments().getInt(ARG_PAGE); 
    } 
    
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
             Bundle savedInstanceState) { 
        View view = inflater.inflate(R.layout.fragment_page, container, false); 
        TextView textView = (TextView) view; 
        textView.setText("Fragment #" + mPage); 
        return view; 
    
  • SampleFragmentPagerAdapter

    public class SampleFragmentPagerAdapter extends FragmentPagerAdapter { 
    final int PAGE_COUNT = 3; 
    private String tabTitles[] = new String[]{"Profile", "Shop", "History"}; 
    private Context context; 
    
    private int[] imageResId = { 
         R.drawable.ic_one, 
         R.drawable.ic_two, 
         R.drawable.ic_three 
    }; 
    
    public SampleFragmentPagerAdapter(FragmentManager fm, Context context) { 
        super(fm); 
        this.context = context; 
    } 
    
    @Override 
    public int getCount() { 
        return PAGE_COUNT; 
    } 
    
    @Override 
    public Fragment getItem(int position) { 
        return PageFragment.newInstance(position + 1); 
    } 
    
    @Override 
    public CharSequence getPageTitle(int position) { 
        // Generate title based on item position 
        return tabTitles[position]; 
    } 
    
+0

3つのフラグメントを作成し、それぞれのフラグメントにロジックを配置する必要があります。 –

+0

このチュートリアルを参照してください。http://www.android4devs.com/2015/12/tab-layout-material-design-support.html –

答えて

3

あなたは一例.FORすべてのfragmentであなたのonCreateView()またはonViewCreated()であなたのコードのロジックを記述することができます。

あなたはこのようなあなたのロジックを置くことができる2 FirstFragmenttextViewと1 Buttonがあります

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.yourXmlLayout, container, false); 

     return view; 
    } 

    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 

     //logic here 
     yourButton = (Button)findViewById(R.id.yourButton); 
     yourButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

      } 
     }); 

    } 

など... SecondFragmentおよびThirdFragmentです。

+0

PageFragmentの内側チュートリアルページの.java? – Zainau

+0

この断片の中にタブを開くロジックはありません。フラグメント#1、フラグメント#2、フラグメント#3 –

+0

のロジックを書く必要がありますので、ロジックを書き込むために別の3 .javaを作成する必要がありますか?どのように私はそれらを個人のタブにリンクするのですか? – Zainau