我在Adapter中创建Dialog Fragment Object,其中该对话框的getInstance()方法接受提供删除对象的方法的接口对象。 在这种情况下,我想删除对象删除后的对话框。但它显示dailog对象可能未初始化的错误。
例如,我提供了适配器的getVew()方法的一部分:
final MyDailog dailog = MyDailog.getInstance((int ObjectValue, position, new MyDailog.OnDelete() {
@Override
public void onDeleteItem() {
objectList.get(position).setDeleted();
dailog.dismiss();
});
此处position是适配器的getView方法中的视图索引
@ line“dailog.dismiss();”它给出了错误:错误:(182,45)错误:变量dailog可能尚未初始化
答案 0 :(得分:1)
确实编译器是正确的:它不能保证getInstance
在返回之前不会调用onDeleteItem
,在这种情况下dailog
将不会被初始化。界面OnDelete
是你的,不是吗?修改它以便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的代码来传递create MyDailog实例。