2014-09-04 24 views
4

這是我評論我需要的代碼。我嘗試了一些代碼,但它似乎與Fragment不兼容。如何在Android中的片段中創建是/否警報對話框

public class main extends Fragment { 

    ImageButton imagebutton; 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.main, container, false); 

     imagebutton = (ImageButton) rootView.findViewById(R.id.im); 

     imagebutton.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       //Open Yes/No Dialog 

       //if Yes do something 
      } 
     }); 

    } 
} 

回答

19

試試這個方法:

private void createAndShowAlertDialog() { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setTitle("My Title"); 
    builder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
       //TODO 
       dialog.dismiss(); 
     } 
    }); 
    builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
       //TODO 
       dialog.dismiss(); 
     } 
    }); 
    AlertDialog dialog = builder.create(); 
    dialog.show(); 
    } 
+0

我正在使用片段傢伙。 – 2014-09-04 16:31:45

+0

我也在使用片段。我將該方法添加到片段類中,並在需要確認用戶何時需要刪除項目時調用它。 – huertazx 2014-09-04 16:39:50

+0

答案中沒有圖像按鈕。客戶想要一個圖像按鈕。出於某種原因,我找不到「setPositiveImageButton」,並且onClick方法在片段中的工作與活動完全不同。 – JosephK 2014-10-16 11:02:55

1
class MyDialogFragment extends DialogFragment{ 
    Context mContext; 
public MyDialogFragment() { 
    mContext = getActivity(); 
} 
@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(mContext); 
    alertDialogBuilder.setTitle("Really?"); 
    alertDialogBuilder.setMessage("Are you sure?"); 
    alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      Toast.makeText(getApplicationContext(), "CLick-Click!!",Toast.LENGTH_LONG).show(); 
     } 
    }); 

    alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
     } 
    }); 


    return alertDialogBuilder.create(); 
} 
} 

創建對話框電話:

new MyDialogFragment().show(getFragmentManager(), "MyDialog");

,並從某處關閉該對話框: ((MyDialogFragment)getFragmentManager().findFragmentByTag("MyDialog")).getDialog().dismiss();


OR
嘗試使用這個片段:

AlertDialog.Builder mDialog = new AlertDialog.Builder(MyClassNane.this); 
mDialog.setTitle("Title"); 
mDialog.setMessage("Do you want to delete ?"); 
mDialog.setPositiveButton("Yes",new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog,int which) { 
        Toast.makeText(getApplicationContext(), 
        "Click-Click!!",Toast.LENGTH_LONG).show(); 
       } 
       dialog.cancel(); 
      } 
     }); 

mDialog.setNegativeButton("No", 
     new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, 
        int which) { 
       dialog.cancel(); 
      } 
     }); 
AlertDialog alert = mDialog.create(); 
alert.show(); 
+0

我看到以前這個答案,但我不知道如何在我的代碼使用它? – 2014-09-04 16:04:27

+0

我編輯了我的代碼?它有幫助嗎?接受答案是如此。 – 2014-09-04 16:06:35

+0

@MohammadFarahi嘗試薩加貼。 「要創建對話框...」 – user2221125 2014-09-04 16:07:00

相關問題