2013-03-16 64 views
0

我試圖在點擊設置「關於」按鈕後打開關於對話框(從DialogFragment擴展)。打開關於設置菜單中的onClickEvent後的對話框

這是我講的類

import android.app.AlertDialog; 
import android.app.Dialog; 
import android.app.DialogFragment; 
import android.content.DialogInterface; 
import android.os.Bundle; 


public class AboutDialog extends DialogFragment { 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the Builder class for convenient dialog construction 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setMessage(R.string.about_message) 
       .setPositiveButton(R.string.btn_accept, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         // FIRE ZE MISSILES! 
        } 
       }) 
       .setNegativeButton(R.string.btn_cancel, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         // User cancelled the dialog 
        } 
       }); 
     // Create the AlertDialog object and return it 
     return builder.create(); 
    } 

} 

我是否需要將其添加到清單,?我相信我不應該

這是我SettingsActivity目前的作品完美

import android.content.Intent; 
import android.os.*; 
import android.preference.*; 
import android.view.MenuItem; 

public class SettingsActivity extends PreferenceActivity{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit(); 
    } 

    public static class MyPreferenceFragment extends PreferenceFragment 
    { 
     @Override 
     public void onCreate(final Bundle savedInstanceState){ 
      super.onCreate(savedInstanceState); 
      addPreferencesFromResource(R.xml.prefs); 
     } 
    } 


} 

如何使從SettingsActivity此對話框的電話嗎?

在此先感謝。

回答

2

只需撥打您DialogFragment您可以使用以下

AboutDialog newFragment = new AboutDialog(); 
    newFragment.show(getFragmentManager(), "dialog"); 

有在開發者網站上的細節的例子。請參閱here瞭解詳細信息

N.B.DialogFragment僅適用於api級別11或更高版本。所以如果你在較低的api中使用它,將會出現錯誤。在這種情況下,使用SupportLibrary

+0

好,但我在哪裏添加這段代碼的對話框?如何知道在這種情況下在SettingsACtivity中按About按鈕的時間?謝謝你的回覆 – msqar 2013-03-16 18:25:21

+1

沒關係,我可以做到:)太棒了!謝了哥們! – msqar 2013-03-16 18:36:21