Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我想为我的viewpager页面中的按钮设置onClickListener_Java_Android_Xml_Android Layout - Fatal编程技术网

Java 我想为我的viewpager页面中的按钮设置onClickListener

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) {

我正在开发一个应用程序,它由一个只有2个页面的浏览页面和每个页面中的线性布局组成。我想为那些线性布局设置单击侦听器

我使用PagerAdapter实现了视图寻呼机。我试过了

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版本?