2012-05-01 23 views
0

我在主要活動如下對話框:如何從主活動,對話框的onClick函數調用findPreference?

@Override 
protected Dialog onCreateDialog(int id) { 
    final Dialog dialog; 
    switch(id) { 
    case DIALOG_NAME: 
     builderDialog.setMessage(getString(R.string.dialog_text)) 
       .setCancelable(false) 
       .setPositiveButton(R.string.dialog_share_yes, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         // how should I call findPreference here? 
         PreferenceScreen screen = (PreferenceScreen) findPreference("pref_key"); 
         ... 
        } 
       }) 

我收到以下錯誤:

The method findPreference(String) is undefined for the type new DialogInterface.OnClickListener(){}

回答

3

必須使用您的上下文調用此;

YourActivity.this.findPreference("pref_key"); 

應該工作;)

+0

我應該爲'YourActivity'使用?我的主要活動是否是名字?然後它不起作用:_類型爲MyActivity_的findPreference(String)方法未定義。 MyActivity擴展ListActivity:_public類MyActivity擴展ListActivity {_。 –

+0

然後在您的活動中創建一個局部變量: 上下文mContext; 和onCreate,do:mContext = getBaseContext(); 然後在你的對話框中使用mContext.findPreference(「pref_key」); –

相關問題