只是想知道你们中的任何人是否可以帮助我访问“包含”中的元素。布局文件里面不是活动而是片段?
大多数帖子都告诉我这样做: How to access Button inside "include" layout但由于我没有参加某项活动,因此图片的听众无法工作。
Ps:当我调用一个不在包含文件中但在片段布局上的元素时,侦听器工作(打开导航抽屉)。
我在片段的onCreateView方法中拥有的内容:
View myLayout = view.findViewById(R.id.layout_top_bar);
image = (ImageView) myLayout.findViewById(R.id.image_left_top_bar);
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MainActivity mainActivity = (MainActivity)getActivity();
mainActivity.openMenuDrawer();
}
});

这是我的包含布局文件:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_top_bar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp">
<ImageView
android:id="@+id/image_left_top_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/hamburger_icon" />
这就是我在片段布局文件中包含它的方式:
<include layout="@layout/top_bar" />
非常感谢您的帮助! :)
答案 0 :(得分:1)
您可以直接使用片段的根布局来访问它。
image = (ImageView) view.findViewById(R.id.image_left_top_bar);
如果我们通过膨胀动态添加布局,我们会使用您在上面提到的方法,但这里不需要。
答案 1 :(得分:0)
将ID放入布局,然后访问elemento。
View myLayout = findViewById( R.id.layout );
View myView = myLayout.findViewById( R.id.item );
答案 2 :(得分:0)
更改:
getLayoutPosition()
有关
getAdapterPosition()