首页 > 系统 > Android > 正文

【Android】监听viewpager子页面里面的Button按钮

2019-11-15 01:07:31
字体:
来源:转载
供稿:网友
【Android】监听viewpager子页面里面的Button按钮

最近做项目遇到Viewpager+Fragment滑动页面,要监听子页面中的按钮,在网上查了些解决办法:

办法一

这种方法是在适配器初始化中进行监听,有人亲测通过,但是我继承FragmentPagerAdapter,未果。

@Override public Object instantiateItem(final View view, int position) { switch (position) { case 0: btnKnowledge = (Button)mListViews.get(position).findViewById(R.id.tab_knowledge); btnKnowledge.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(HomeActivity.this, "XXXXXX", 1).show(); } }); break;

default: break; } ((ViewPager) view).addView(mListViews.get(position), 0); return mListViews.get(position); }

方法二

这个方法也是我自己用的方法,得以解决。不多说,直接上代码。

PRivate class ShinStarterHelpPageAdapter extends FragmentPagerAdapter {

public ShinStarterHelpPageAdapter(FragmentManager fm) {super(fm);}

@Overridepublic Fragment getItem(int position) {StarterHelpPageFragment fragment = null;if (position != 2)fragment = new StarterHelpPageFragment();elsefragment = new StarterHelpFirstPageFragment(selectIRM03Listener, selectIRM01Listener, selectIRM02Listener);Bundle bundle = new Bundle();bundle.putInt(StarterHelpPageFragment.KEY_RES_ID, resIds[position]);fragment.setArguments(bundle);

return fragment;}

@Overridepublic int getCount() {return resIds.length;}}

public class StarterHelpFirstPageFragment extends StarterHelpPageFragment {private OnClickListener selectIRM03Listener = null;private OnClickListener selectIRM02Listener = null;private OnClickListener selectIRM01Listener = null;

public StarterHelpFirstPageFragment(OnClickListener selectIRM03Listener, OnClickListener selectIRM01Listener, OnClickListener selectIRM02Listener) {this.selectIRM01Listener = selectIRM01Listener;this.selectIRM02Listener = selectIRM02Listener;this.selectIRM03Listener = selectIRM03Listener;}

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

Button again_connect = (Button) view.findViewById(R.id.again_connect);Button histus = (Button) view.findViewById(R.id.histus);Button st_search = (Button) view.findViewById(R.id.st_search);

again_connect.setOnClickListener(this.selectIRM01Listener);histus.setOnClickListener(this.selectIRM02Listener);st_search.setOnClickListener(this.selectIRM03Listener);}}

private OnClickListener selectIRM03Listener = new OnClickListener() {

@Overridepublic void onClick(View v) {}};

private OnClickListener selectIRM01Listener = new OnClickListener() {

@Overridepublic void onClick(View v) {}};private OnClickListener selectIRM02Listener = new OnClickListener() {

@Overridepublic void onClick(View v) {}};

这种方法就是直接将第三个页面给抽出来,单独进行监听,然后再放到Viewpager里面,本人亲测,代码通过编译,希望对大家有帮助。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表