android 变量为空,android – 在onPageSelected()中访问时,片段成员变量变为null

我正在使用FragmentPagerAdapter和FragmentActivity来创建可滑动的片段.

我在pagerAdapter中的第一个片段看起来像这样.

public class MySummaryFragment extends CommonFragment implements OnPageChangeListener

{

private Context mContext;

private View mMyView;

LinearLayout mDetailLayout;

TextView mDateTxtView;

@Override

public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {

System.out.println("onCreateView() Market summary");

mMyView = inflater.inflate(R.layout.my_page_summary_fragment_layout,container,false);

mDetailLayout = (LinearLayout)mMyView.findViewById(R.id.SummaryDetailLayout);

mDateTxtView = (TextView) mMyView.findViewById(R.id.txtDate);

Account_Id = AccountDetails.getInstance(mContext).getClientCodes().get(0);

sendRequest(Account_Id);

return mMyView;

}

@Override

public void onPageSelected(int arg0) {

System.out.println("inside onPageScrollStateChanged()");

System.out.println("mMyView is null ? = "+(mMyView==null));

mDateTxtView = (TextView) mMyView.findViewById(R.id.txtMarketSummaryDate);

Account_Id = AccountDetails.getInstance(mContext).getClientCodes().get(0);

mDateTxtView.setText("");

sendRequest(Account_Id);

}

}

这里的问题是当刷出5-6个片段并向后滑动到第一个片段时,我得到NullPointerException.

当我尝试调试时,我发现了

mMyView is null ? = true

为什么这样?

请帮我.

这是我的片段包含FragmentPagerAdapter,

public class MyPageDetailViewFragment extends CommonFragment {

private View mView;

Context mContext;

OnPageChangeListener pageChangeListener;

@Override

public View onCreateView(LayoutInflater inflater,Bundle savedInstanceState) {

mView = inflater.inflate(R.layout.my_page_fragments,null);

mContext = getActivity();

setHasOptionsMenu(false);

setupSearchBarComponent();

PagerTabStrip pagerTabStrip = (PagerTabStrip)mView. findViewById(R.id.pager_title_strip);

pagerTabStrip.setDrawFullUnderline(true);

pagerTabStrip.setTabIndicatorColor(Color.BLACK);

/** Getting a reference to the ViewPager defined the layout file */

ViewPager pager = (ViewPager) mView.findViewById(R.id.pager);

/** Getting fragment manager */

FragmentManager fm = ((HomeScreenActivity)mContext).getSupportFragmentManager();

/** Instantiating FragmentPagerAdapter */

final MyFragmentPagerAdapter pagerAdapter = new MyFragmentPagerAdapter(fm);

pager.setAdapter(pagerAdapter);

pager.setCurrentItem(0);

pageChangeListener = new OnPageChangeListener() {

@Override

public void onPageSelected(int selectedIndex) {

System.out.println("selectedIndex = "+selectedIndex);

Object page = pagerAdapter.getItem(selectedIndex);

if( page instanceof OnPageChangeListener){

((OnPageChangeListener) page).onPageSelected(selectedIndex);

}

}

@Override

public void onPageScrolled(int arg0,float arg1,int arg2) {

}

@Override

public void onPageScrollStateChanged(int arg0) {

}

};

pager.setOnPageChangeListener(pageChangeListener);

return mView;

// return super.onCreateView(inflater,savedInstanceState);

}

这是我的实现MyFragmentPagerAdapter,

public class MyFragmentPagerAdapter extends FragmentPagerAdapter {

/** Constructor of the class */

public MyFragmentPagerAdapter(FragmentManager fm) {

super(fm);

}

/** This method will be invoked when a page is requested to create */

@Override

public Fragment getItem(int index) {

System.out.println("getItem = "+index);

Bundle data = new Bundle();

data.putInt("current_page",index + 1);

CommonFragment fragment = getFragment(index);

fragment.setArguments(data);

return fragment;

}

public CommonFragment getFragment(int index) {

CommonFragment fragment = null;

if(fragment == null){

if(index == 0){

fragment = new MySummaryFragment();

}else if(index == 1){

fragment = new FragmentOne();

}else if(index == 4){

fragment = new FragmentFour();

}else if(index == 5){

fragment = new FragmentFive();

}else{

fragment = new MyFragment();

}

}

return fragment;

}

/** Returns the number of pages */

@Override

public int getCount() {

return titles.length;

}

@Override

public CharSequence getPageTitle(int position) {

return titles[position];

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值