Java 我想为我的viewpager页面中的按钮设置onClickListener
我正在开发一个应用程序,它由一个只有2个页面的浏览页面和每个页面中的线性布局组成。我想为那些线性布局设置单击侦听器 我使用PagerAdapter实现了视图寻呼机。我试过了Java 我想为我的viewpager页面中的按钮设置onClickListener,java,android,xml,android-layout,Java,Android,Xml,Android Layout,我正在开发一个应用程序,它由一个只有2个页面的浏览页面和每个页面中的线性布局组成。我想为那些线性布局设置单击侦听器 我使用PagerAdapter实现了视图寻呼机。我试过了 view.findViewById(R.id.add_new_tut_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
view.findViewById(R.id.add_new_tut_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(context, "works", Toast.LENGTH_SHORT).show();
}
});
但它根本不起作用
HomePagerAdapter.java
公共类HomePagerAdapter扩展了PagerAdapter{
语境;
HomePagerAdapter(上下文){
this.context=上下文;
}
@非空
@凌驾
公共对象实例化项(@NonNull ViewGroup container,final int position){
final ModelObject ModelObject=ModelObject.values()[position];
LayoutFlater充气机=LayoutFlater.from(上下文);
视图组布局=(视图组)充气器。充气(modelObject.getLayoutResId(),容器,false);
View=inflater.inflate(modelObject.getLayoutResId(),container,false);
如果(位置==0){
view.findviewbyd(R.id.add_new_tut_btn).setOnClickListener(new view.OnClickListener()){
@凌驾
公共void onClick(视图){
Toast.makeText(上下文“有效”,Toast.LENGTH_SHORT).show();
}
});
}
container.addView(布局);
返回布局;
}
@凌驾
公共项(视图组集合、int位置、对象视图){
collection.removeView((视图)视图);
}
@凌驾
public int getCount(){
返回ModelObject.values().length;
}
@凌驾
公共布尔值isViewFromObject(@NonNull视图,@NonNull对象){
返回视图==对象;
}
公共枚举模型对象{
主页(“主页”,右布局。主页(BTN布局),
文件页面(“文件”,R.layout.FILES\u下载\u布局);
私人住宅;
私有字符串mTitleResId;
ModelObject(字符串titleResId、int-layoutResId){
mTitleResId=标题resid;
MLAYOUTRISID=布局方案ID;
}
公共字符串getTitleResId(){
返回mTitleResId;
}
public int getLayoutResId()
{
返回mLayoutResId;
}
}
}
home\u btns\u layout.xml
文件\u下载\u layout.xml
我可以建议您在ViewPager的每个屏幕上使用片段吗?然后在你的片段中,你可以做任何你想做的事情,使用所有你需要的ClickListener
我为您创建了一个要点您需要明确地告诉android,您要求您的线性布局是可点击的!因为它是一个布局,而不是一个小部件 将LinearLayout可单击属性设置为true 在XML中
android:clickable="true"
还是用代码
yourLinearLayoutButton.setClickable(true);
这是一个愚蠢的错误。我将视图膨胀了两次,将侦听器设置为一个,并将另一个附加到ViewGroup容器中。感谢您指出@IcedLance您能补充一下您所说的根本不起作用的意思吗?您得到的确切错误是什么?知道了这一点,人们可以更容易地帮助您。不禁要注意,您将视图放大了两次,一次是
视图
,将侦听器设置到按钮上,一次是布局
并将布局附加到寻呼机上。这些是单独的例子。谢谢你指出。我甚至都没注意到@IcedLance您能否共享相同的java版本?