viewpager和Fragment實現tab
按照視頻寫,最后報錯了,找不出bug,求大神解答。
package com.example.bighead_tab3;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageButton;
import android.widget.LinearLayout;
public class MainActivity extends FragmentActivity implements OnClickListener{
? ? private ViewPager mViewPager;
? ? private LinearLayout mTabxuexi;
? ? private LinearLayout mTabfan;
? ? private LinearLayout mTabfeed;
? ? private LinearLayout mTabge;
? ?
? ? private ImageButton mxuexiImg;
? ? private ImageButton mfanImg;
? ? private ImageButton mfeedImg;
? ? private ImageButton mgeImg;
? ??
? ? private FragmentPagerAdapter mAdadpter;
? ? private List<Fragment>mFragments;
? ? @Override
? ??
? ? protected void onCreate(Bundle savedInstanceState) {
? ? requestWindowFeature(Window.FEATURE_NO_TITLE);
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? setContentView(R.layout.activity_main);
? ? ? ? initView();
? ? ? ? initEvents();
? ? ? ? setSelect(0);
? ? }
private void initEvents() {
mTabxuexi.setOnClickListener(this);
? ?mTabfan.setOnClickListener(this);
? ?mTabfeed.setOnClickListener(this);
? ?mTabge.setOnClickListener(this);
}
private void initView() {
mViewPager=(ViewPager) findViewById(R.id.id_viewpager);
mTabxuexi=(LinearLayout) findViewById(R.id.id_tab_xuexi);
mTabfan=(LinearLayout) findViewById(R.id.id_tab_fan);
mTabfeed=(LinearLayout) findViewById(R.id.id_tab_feed);
mTabge=(LinearLayout) findViewById(R.id.id_tab_ge);
mxuexiImg=(ImageButton) findViewById(R.id.id_tab_xuexi_img);
mfanImg=(ImageButton) findViewById(R.id.id_tab_fan_img);
mfeedImg=(ImageButton) findViewById(R.id.id_tab_feed_img);
mgeImg=(ImageButton) findViewById(R.id.id_tab_ge_img);
mFragments=new ArrayList<Fragment>();
Fragment mTab01=new XuexiFragment();
Fragment mTab02=new FanFragment();
Fragment mTab03=new FeedFragment();
Fragment mTab04=new GeFragment();
mFragments.add(mTab01);
mFragments.add(mTab02);
mFragments.add(mTab03);
mFragments.add(mTab04);
mAdadpter=new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public int getCount() {
return mFragments.size();
}
@Override
public Fragment getItem(int arg0) {
return mFragments.get(arg0=0);
}
};
mViewPager.setAdapter(mAdadpter);
? ?mViewPager.setOnPageChangeListener(new OnPageChangeListener(){
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int arg0) {
int currentItem =mViewPager.getCurrentItem();
setTab(currentItem);
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.id_tab_xuexi:
setSelect(0);
break;
? ? ? ? case R.id.id_tab_fan:
? ? ? ? setSelect(1);
break;
? ? ? ? case R.id.id_tab_feed:
? ? ? ? setSelect(2);
break;
? ? ? ? case R.id.id_tab_ge:
? ? ? ? setSelect(3);
break;
default:
break;
}
}
private void setSelect(int i) {
setTab(i);
mViewPager.setCurrentItem(i);
}
private void setTab(int i) {
resetImg();
switch (i){
case 0:
mxuexiImg.setImageResource(R.drawable.tab_address_pressed);
break;
? ?case 1:
? ? mfanImg.setImageResource(R.drawable.tab_find_frd_pressed);
break;
? case 2:
? mfeedImg.setImageResource(R.drawable.tab_settings_pressed);
break;
? ? ? ?case 3:
? ? mgeImg.setImageResource(R.drawable.ic_launcher);
break;
}
}
private void resetImg() {
mxuexiImg.setImageResource(R.drawable.tab_address_normal);
mfanImg.setImageResource(R.drawable.tab_find_frd_normal);
mfeedImg.setImageResource(R.drawable.tab_settings_normal);
mgeImg.setImageResource(R.drawable.ic_menu_emoticons);
}
}
package com.example.bighead_tab3;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageButton;
import android.widget.LinearLayout;
public class MainActivity extends FragmentActivity implements OnClickListener{
? ? private ViewPager mViewPager;
? ? private LinearLayout mTabxuexi;
? ? private LinearLayout mTabfan;
? ? private LinearLayout mTabfeed;
? ? private LinearLayout mTabge;
? ?
? ? private ImageButton mxuexiImg;
? ? private ImageButton mfanImg;
? ? private ImageButton mfeedImg;
? ? private ImageButton mgeImg;
? ??
? ? private FragmentPagerAdapter mAdadpter;
? ? private List<Fragment>mFragments;
? ? @Override
? ??
? ? protected void onCreate(Bundle savedInstanceState) {
? ? requestWindowFeature(Window.FEATURE_NO_TITLE);
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? setContentView(R.layout.activity_main);
? ? ? ? initView();
? ? ? ? initEvents();
? ? ? ? setSelect(0);
? ? }
private void initEvents() {
mTabxuexi.setOnClickListener(this);
? ?mTabfan.setOnClickListener(this);
? ?mTabfeed.setOnClickListener(this);
? ?mTabge.setOnClickListener(this);
}
private void initView() {
mViewPager=(ViewPager) findViewById(R.id.id_viewpager);
mTabxuexi=(LinearLayout) findViewById(R.id.id_tab_xuexi);
mTabfan=(LinearLayout) findViewById(R.id.id_tab_fan);
mTabfeed=(LinearLayout) findViewById(R.id.id_tab_feed);
mTabge=(LinearLayout) findViewById(R.id.id_tab_ge);
mxuexiImg=(ImageButton) findViewById(R.id.id_tab_xuexi_img);
mfanImg=(ImageButton) findViewById(R.id.id_tab_fan_img);
mfeedImg=(ImageButton) findViewById(R.id.id_tab_feed_img);
mgeImg=(ImageButton) findViewById(R.id.id_tab_ge_img);
mFragments=new ArrayList<Fragment>();
Fragment mTab01=new XuexiFragment();
Fragment mTab02=new FanFragment();
Fragment mTab03=new FeedFragment();
Fragment mTab04=new GeFragment();
mFragments.add(mTab01);
mFragments.add(mTab02);
mFragments.add(mTab03);
mFragments.add(mTab04);
mAdadpter=new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public int getCount() {
return mFragments.size();
}
@Override
public Fragment getItem(int arg0) {
return mFragments.get(arg0=0);
}
};
mViewPager.setAdapter(mAdadpter);
? ?mViewPager.setOnPageChangeListener(new OnPageChangeListener(){
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int arg0) {
int currentItem =mViewPager.getCurrentItem();
setTab(currentItem);
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.id_tab_xuexi:
setSelect(0);
break;
? ? ? ? case R.id.id_tab_fan:
? ? ? ? setSelect(1);
break;
? ? ? ? case R.id.id_tab_feed:
? ? ? ? setSelect(2);
break;
? ? ? ? case R.id.id_tab_ge:
? ? ? ? setSelect(3);
break;
default:
break;
}
}
private void setSelect(int i) {
setTab(i);
mViewPager.setCurrentItem(i);
}
private void setTab(int i) {
resetImg();
switch (i){
case 0:
mxuexiImg.setImageResource(R.drawable.tab_address_pressed);
break;
? ?case 1:
? ? mfanImg.setImageResource(R.drawable.tab_find_frd_pressed);
break;
? case 2:
? mfeedImg.setImageResource(R.drawable.tab_settings_pressed);
break;
? ? ? ?case 3:
? ? mgeImg.setImageResource(R.drawable.ic_launcher);
break;
}
}
private void resetImg() {
mxuexiImg.setImageResource(R.drawable.tab_address_normal);
mfanImg.setImageResource(R.drawable.tab_find_frd_normal);
mfeedImg.setImageResource(R.drawable.tab_settings_normal);
mgeImg.setImageResource(R.drawable.ic_menu_emoticons);
}
}