2013-03-16 67 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