2012-12-06 44 views
-1

我想爲dialog.setOnCancelListener (OnCancelListener), 註冊一個回調,但是這個回調函數會被其他對話框多次註冊,所以我應該從傳遞的對話框中獲得一些具有不同額外日期的唯一日期,以知道哪一個是有用或無用的。如何在對話框中添加額外的數據?

回答

0

使用的接口,把這段代碼在對話框Fragmnet: 公共靜態接口MyInterface的{ 公共無效着性(字符串someInfo); }

private MyInterface mListener; 

@Override 
public void onAttach(Activity activity) { 
    mListener = (MyInterface) activity; 
    super.onAttach(activity); 
} 

@Override 
public void onDetach() { 
    mListener = null; 
    super.onDetach(); 
} 

然後,在onCancel方法:

@Override 
public void onCancel(DialogInterface dialog) { 
    // TODO Auto-generated method stub 
    super.onCancel(dialog); 
      //This line passes the String to the implementing class 
      mListener.onChoose(choice); 
} 

回到你的類:

public class MainActivity extends Activity implements MyInterface { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.activity_main); 
} 

public void onChoose(String myExtraData) { 
    //Do stuff here 
} 
+0

其中函數定義onAttach? – mogutou

+0

當您看到@Override時,它表示這是來自超類的繼承方法。實質上,onAttach是接口類的一部分,很像onCreate是Activity類的一部分。 – Hennaz

相關問題