如何使用对话框片段? (showDialog已弃用)Android

前端之家收集整理的这篇文章主要介绍了如何使用对话框片段? (showDialog已弃用)Android前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道有这个文件

http://developer.android.com/reference/android/app/DialogFragment.html#AlertDialog

但是作为一个新的Android / Java学习者,通过编写一个简单的警报对话框可以看到2个选项(是/否)消息弹出的代码量并不容易.

以下是我在MainActivity文件中的代码

  1. final private int RESET_DIALOG = 0;
  2.  
  3. private OnClickListener resetButtonListener = new OnClickListener() {
  4.  
  5. @Override
  6. public void onClick(View v) {
  7. showDialog(RESET_DIALOG);
  8.  
  9. }
  10. };
  11.  
  12. protected android.app.Dialog onCreateDialog(int id) {
  13. switch(id) {
  14. case RESET_DIALOG:
  15. AlertDialog.Builder builder = new Builder(this);
  16. return builder
  17. .setMessage("Are you sure you want to reset the count?")
  18. .setNegativeButton("No",new DialogInterface.OnClickListener() {
  19.  
  20. @Override
  21. public void onClick(DialogInterface arg0,int arg1) {
  22. Toast.makeText(MainActivity.this,"Did not reset!",5).show();
  23.  
  24. }
  25. })
  26.  
  27. .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
  28.  
  29.  
  30. @Override
  31. public void onClick(DialogInterface arg0,"Did Reset!",5).show();
  32.  
  33. }
  34. })
  35. .create();
  36. }
  37. return null;
  38. };

这是我尝试按照Android网站上的说明进行操作:主要活动文件

  1. final private int RESET_DIALOG = 0;
  2.  
  3. private OnClickListener resetButtonListener = new OnClickListener() {
  4.  
  5. @Override
  6. public void onClick(View v) {
  7. Intent intent = new Intent(MainActivity.this,MainDialog.class);
  8. startActivity(intent);
  9.  
  10. }
  11. };
  12.  
  13. protected android.app.Dialog onCreateDialog(int id) {
  14. switch(id) {
  15. case RESET_DIALOG:
  16. AlertDialog.Builder builder = new Builder(this);
  17. return builder
  18. .setMessage("Are you sure you want to reset the count?")
  19. .setNegativeButton("No",5).show();
  20.  
  21. }
  22. })
  23. .create();
  24. }
  25. return null;
  26. };

然后创建一个MainDialog类:(我实际上失去了如何正确地做这个或应用它)

  1. package com.proteintracker;
  2.  
  3. import android.support.v4.app.DialogFragment;
  4.  
  5. public class MainDialog extends DialogFragment {
  6. public static MyAlertDialogFragment newInstance(int title) {
  7. MyAlertDialogFragment frag = new MyAlertDialogFragment();
  8. Bundle args = new Bundle();
  9. args.putInt("title",title);
  10. frag.setArguments(args);
  11. return frag;
  12. }
  13. }

我不知道我是否假设为片段创建一个新类,以及如何将它应用到活动屏幕中的当前对话框中.

解决方法

您可以像这样显示您的DialogFragment:
  1. void showDialog() {
  2. DialogFragment newFragment = MyAlertDialogFragment.newInstance(
  3. R.string.alert_dialog_two_buttons_title);
  4. newFragment.show(getFragmentManager(),"dialog");
  5. }

在片段对话框中,您应该覆盖onCreateDialog并返回简单对话框的实例,例如AlertDialog.

  1. public static class MyAlertDialogFragment extends DialogFragment {
  2.  
  3. public static MyAlertDialogFragment newInstance(int title) {
  4. MyAlertDialogFragment frag = new MyAlertDialogFragment();
  5. Bundle args = new Bundle();
  6. args.putInt("title",title);
  7. frag.setArguments(args);
  8. return frag;
  9. }
  10.  
  11. @Override
  12. public Dialog onCreateDialog(Bundle savedInstanceState) {
  13. int title = getArguments().getInt("title");
  14.  
  15. AlertDialog.Builder builder = new Builder(this);
  16. return builder
  17. .setMessage("Are you sure you want to reset the count?")
  18. .setNegativeButton("No",new DialogInterface.OnClickListener() {
  19.  
  20. @Override
  21. public void onClick(DialogInterface arg0,int arg1) {
  22. Toast.makeText(MainActivity.this,5).show();
  23.  
  24. }
  25. })
  26.  
  27. .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
  28.  
  29.  
  30. @Override
  31. public void onClick(DialogInterface arg0,5).show();
  32.  
  33. }
  34. })
  35. .create();
  36. }
  37. }

猜你在找的Android相关文章