我在适配器中创建对话框片段对象,其中该对话框的getInstance()方法接受提供删除对象方法的接口对象。
在这种情况下,一旦对象删除,我想关闭对话框。但它显示错误,即可能未初始化dailog对象。
例如,我提供了适配器的getVew()方法的一部分:
final MyDailog dailog = MyDailog.getInstance((int ObjectValue, position, new MyDailog.OnDelete() {
@Override
public void onDeleteItem() {
objectList.get(position).setDeleted();
dailog.dismiss();
});
这里的位置是适配器的getView方法中的视图索引
@行“ dailog.dismiss();”它给我的错误是错误:(182,45)错误:变量dailog可能尚未初始化
最佳答案
确实,编译器是正确的:它不能保证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的代码以传递创建MyDailog实例。