我在适配器中创建对话框片段对象,其中该对话框的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实例。

09-11 18:15