gpt4 book ai didi

android - 如何在viewpager中编写按钮的onClick方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:49:17 25 4
gpt4 key购买 nike

我想使用 viewpager 在按钮单击时 toast 一条消息,我还想了解有关如何在 viewpager 中访问 View 的更多信息。

我试过下面的代码....不工作

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, 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();
}
});

请帮助提前谢谢你。

最佳答案

保持代码不变,但改变:

    ((ViewPager) collection).addView(view, 0);

return view;

    ((ViewPager) collection).addView(v, 0);

return v;

你在一个被膨胀的按钮上做了 onclick,然后你用 resId 膨胀了另一个 View 并将它呈现在屏幕上,那个按钮存在于你的应用程序的内存中但没有其他地方,通过返回 v,那个按钮是绘制并在点击时调用 onclicklistener。

关于android - 如何在viewpager中编写按钮的onClick方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8698789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com