我想使用viewpager在按钮点击时干燥消息我还想了解有关如何在viewpager中访问视图的更多信息.
我试过以下代码….不工作
public class MyPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return 3;
}
@Override
public Object instantiateItem(final View collection,final int position) {
v = new View(collection.getContext());
LayoutInflater inflater =
(LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.cate1;
v = inflater.inflate(R.layout.cate1,null,false);
add1 = (Button) v.findViewById(R.id.btnAdd);
add1.setonClickListener( new OnClickListener() {
public void onClick(View m) {
Toast.makeText(collection.getContext(),"click",Toast.LENGTH_LONG).show();
}
});
break;
case 1:
resId = R.layout.cate2;
break;
case 2:
resId = R.layout.cate3;
break;
}
View view = inflater.inflate(resId,null);
((ViewPager) collection).addView(view,0);
return view;
}
@Override
public void destroyItem(final View arg0,final int arg1,final Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(final View arg0,final Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public void finishUpdate(View arg0) {
// Todo Auto-generated method stub
}
@Override
public void restoreState(Parcelable arg0,ClassLoader arg1) {
// Todo Auto-generated method stub
}
@Override
public Parcelable saveState() {
// Todo Auto-generated method stub
return null;
}
@Override
public void startUpdate(View arg0) {
// Todo Auto-generated method stub
}
}
我已经为按钮onclick编写了以下代码….不工作..
v = inflater.inflate(R.layout.cate1,Toast.LENGTH_LONG).show();
}
});
请帮助
先感谢您.
最佳答案
保持代码完全相同但是
更改:
更改:
((ViewPager) collection).addView(view,0);
return view;
至
((ViewPager) collection).addView(v,0);
return v;
你在一个膨胀的按钮上做了onclick,然后你把另一个视图充气并在屏幕上渲染它,那个按钮存在于你的应用程序的内存中但是没有其他地方,通过返回v,该按钮被绘制并且单击时调用onclicklistener.
原文地址:https://www.jb51.cc/android/430520.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。