2 回答
TA贡献1811条经验 获得超5个赞
您调用或使用未初始化的实例变量(即 fullEdit、titleEdit 等)。为了纠正这个在方法 onCreateView 中初始化它们,所以它应该看起来像这样
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_fullscreen_dialog, container, false);
ImageButton close = view.findViewById(R.id.fullscreen_dialog_close);
TextView action = view.findViewById(R.id.fullscreen_dialog_action);
titleEdit = view.findViewById(R.id.fullscreen_dialog_title);
infoEdit = view.findViewById(R.id.fullscreen_dialog_info);
fullEdit = view.findViewById(R.id.fullscreen_dialog_full);
close.setOnClickListener(this);
action.setOnClickListener(this);
return view;
}
用上面的类实例 EditText 变量被实例化并且可以用来获取文本的 onClick 方法
TA贡献1852条经验 获得超1个赞
您在类中全局定义变量 titleEdit、infoEdit 和 full Edit ,但问题是您在 onCreateView 方法中再次在本地定义它们,并使用 findViewById 将它们分配给视图。所以你现在有两种变量:
全球的(尚未链接)
本地的(链接到视图)
当您尝试获取未链接到 View 的全局值时,您访问的 editText 的值。
为了解决这个问题,删除本地的。你 onCreateView 应该是这样的:
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_fullscreen_dialog, container, false);
ImageButton close = view.findViewById(R.id.fullscreen_dialog_close);
TextView action = view.findViewById(R.id.fullscreen_dialog_action);
titleEdit = view.findViewById(R.id.fullscreen_dialog_title);
infoEdit = view.findViewById(R.id.fullscreen_dialog_info);
fullEdit = view.findViewById(R.id.fullscreen_dialog_full);
close.setOnClickListener(this);
action.setOnClickListener(this);
return view;
}
添加回答
举报
