我正在适配器中创建对话框 fragment 对象,其中该对话框的 getInstance() 方法接受接口(interface)对象,该对象提供删除对象的方法。 在这种情况下,我想在删除对象后关闭对话框。但它显示错误,dailog 对象可能未初始化。
例如,我提供适配器的 getVew() 方法的一部分:
final MyDailog dailog = MyDailog.getInstance((int ObjectValue, position, new MyDailog.OnDelete() {
@Override
public void onDeleteItem() {
objectList.get(position).setDeleted();
dailog.dismiss();
});
这里的位置是适配器的 getView 方法中 View 的索引
@行“dailog.dismiss();”它给我错误 Error:(182, 45) error: 变量 dailog 可能尚未初始化
最佳答案
编译器确实是对的:它不能保证 getInstance
在返回之前不会调用 onDeleteItem
,在这种情况下,dailog
不会已初始化。 OnDelete 接口(interface)是你的,不是吗?修改它,使 onDeleteItem 将对话框作为参数。
final MyDailog dailog = MyDailog.getInstance((int ObjectValue, position, new MyDailog.OnDelete() {
@Override
public void onDeleteItem(MyDailog md) {
objectList.get(position).setDeleted();
md.dismiss();
});
当然还要修改调用 onDeleteItem 的代码以传递创建 MyDailog 实例。
关于java - 如何访问同一对象的 getInstance 方法中内联实现的接口(interface)方法中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36356831/