java - 我应该如何访问片段布局中的自定义视图?
问题描述
我有一个片段,其布局由一个自定义视图 ( MyCanvasView
) 和一个按钮组成。我正在尝试通过MyCanvasView
类中的 getter 方法访问变量。我可以访问按钮来制作OnClickListener
,但尝试以相同的方式访问自定义视图不起作用。vMapView
仍然null
。如何从包含它的片段访问自定义视图?
在片段 java 文件中:
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.select_anchor, container, false);
Button btnSubmitAnchor = (Button) v.findViewById(R.id.btn_submit_anchor);
MyCanvasView vMapView = (MyCanvasView) v.findViewById(R.id.anchor_selection_view);
btnSubmitAnchor.setOnClickListener((view) - > {
receivedAnchor = vMapView.getTempAnchor();
try {
Log.i(TAG, "Received anchor:\n" + receivedAnchor.getName());
} catch (Exception e) {
Log.i(TAG, "no anchor was received");
}
});
return v;
}
在 MyCanvasView.java 中:
public Anchor getTempAnchor() {
return tempAnchor;
}
在 select_anchor.xml 中:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<view
android:id="@+id/anchor_selection_view"
class="com.decawave.argomanager.ui.view.MyCanvasView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentTop="true"
android:layout_centerVertical="true"
/>
<Button
android:id="@+id/btn_submit_anchor"
style="@style/MtrlBorderlessButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_margin="5dp"
android:text="@string/btn_submit_anchor" />
</RelativeLayout>
解决方案
试试这样:
<com.decawave.argomanager.ui.view.MyCanvasView
android:id="@+id/anchor_selection_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentTop="true"
android:layout_centerVertical="true"
/>
推荐阅读
- unity3d - 当我捡起和放下物体时,如何阻止它们穿过墙壁?
- javascript - Webpack:为什么默认推荐的包最大大小是 244 KiB?
- java - 使用自定义比较器按 LocalDate 对 ArrayList 进行排序
- javascript - 使用 Braintree 的托管字段加载表单时,如何使浏览器专注于长信用卡号字段
- sql - Bigquery 错误,“无法解析带括号的表达式”
- java - Reactor EmitterProcessor 只保留最后 n 个元素?
- python - Python:在循环中循环 if else 语句
- visual-studio - 我可以编辑具有 x64 ActiveX 控件的 MFC 对话框吗?
- xamarin - 条目的 HorizontalTextAlignment 不起作用
- javascript - 我可以授予android chrome在屏幕关闭时播放音频文件的权限吗?