Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.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 如何在重用布局时高效地访问组件_Java_Android - Fatal编程技术网

Java 如何在重用布局时高效地访问组件

Java 如何在重用布局时高效地访问组件,java,android,Java,Android,我正在创建一个具有相同重复UI组件的表单。因此,我创建了一个单独的xml文件,并将其与include标记一起使用。现在我想处理重复布局中组件的点击。 使用包含标记的重复布局 <include android:id="@+id/ml" layout="@layout/safe_risk_layout" /> 但是因为有很多重复的组件,所以有很多像这样的定义。所以我想知道,有没有什么方法可以有效地利用这一点。例如,通过定义一个单独处理重复组件单击事件的类。非常感谢您的帮助。您可以创建一

我正在创建一个具有相同重复UI组件的表单。因此,我创建了一个单独的xml文件,并将其与include标记一起使用。现在我想处理重复布局中组件的点击。 使用包含标记的重复布局

<include android:id="@+id/ml" layout="@layout/safe_risk_layout" />

但是因为有很多重复的组件,所以有很多像这样的定义。所以我想知道,有没有什么方法可以有效地利用这一点。例如,通过定义一个单独处理重复组件单击事件的类。非常感谢您的帮助。

您可以创建一个复合
视图
。基本上,创建一个自定义类,扩展
布局的根
视图组
,将所有其他内容放入以
标记为根的布局中,并将该布局膨胀到其构造函数中的
视图组
。然后,您可以添加任何自定义项,以便将其作为单个
视图来处理;e、 例如,自定义监听器
接口
s、setter/getter等,但是有很多不错的例子。感谢您的帮助,我使用了复合视图。但是如何在复合视图中使用意图呢?在布局中,当用户单击照片图标时,有打开相机应用程序或图库的意图。所以我需要写一个startactivityforresult和OnActivityResult方法。但是这些方法不能在复合视图中写入。我从一个片段类调用这个复合视图。你能帮我吗?这不是
视图
应该处理的事情。您希望
活动
片段
处理该问题,因此请使用
界面
将单击的内容中继到
活动
/
片段
。您可以创建自己的
接口
——例如,
OnPhotoClickListener
——以及一个setter方法。或者,您也可以使用
OnClickListener
界面,制作一个类似于
setphotoiconclicklistener()
的方法。非常感谢迈克,它工作得很好。谢谢你的帮助。还有一件事,它与这个问题无关,现在我从相机中捕获一幅图像,并将该图像用在pdf中。当我获取捕获图像的路径时,我是否想将其暂时保存在某个软件中,并在生成pdf后将其删除?我不希望用户在图库中显示该图像。我不确定我是否完全理解您的要求,但可以,如果您在创建PDF后不需要该图像,则应将其删除。
ml = findViewById(R.id.ml);
btnmlnote = ml.findViewById(R.id.btnnote);
btnmlphoto = ml.findViewById(R.id.btnphoto);