2016-04-01 6 views
0

Ich erstellen Dialog Fragment-Objekt in Adapter wo getInstance() -Methode des Dialogfelds akzeptieren Schnittstelle Objekt, die Methode zum Löschen von Objekt bereitstellen. In diesem Fall möchte ich den Dialog einmal Objekt gelöscht löschen. aber es zeigt Fehler an, dass das Dailog-Objekt möglicherweise nicht initialisiert wird.Zugriff auf Objekt in Interface-Methode implementiert inline in GetInstance-Methode des gleichen Objekts

Zum Beispiel I Teil getVew() Methode des Adapters am Bereitstellen:

final MyDailog dailog = MyDailog.getInstance((int ObjectValue, position, new MyDailog.OnDelete() { 
     @Override 
     public void onDeleteItem() { 

       objectList.get(position).setDeleted(); 
       dailog.dismiss();     
     }); 

hier Positionsindex der Ansicht in getView Method of Adapter

@ line "dailog.dismiss();" es gibt mir diese Fehler Fehler: (182, 45) Fehler: Variable dailog nicht

Antwort

1

Tat der Compiler ist richtig initialisiert haben könnte: Es ist nicht, dass getInstance kann nicht garantieren, onDeleteItem vor der Rückkehr nicht nennen, und in diesem Fall dailog würde nicht initialisiert werden. Die Schnittstelle OnDelete gehört dir, oder? Ändern Sie es so, dass onDeleteItem das Dialogfeld als Parameter enthält.

Und natürlich den Code ändern, der onDeleteItem aufruft, um die create MyDailog-Instanz zu übergeben.

Verwandte Themen