'ओके' बटन के साथ संदेश बॉक्स कैसे जोड़ें?


81

मैं ओके बटन के साथ एक संदेश बॉक्स प्रदर्शित करना चाहता हूं। मैंने निम्न कोड का उपयोग किया है, लेकिन यह तर्क के साथ एक संकलन त्रुटि का परिणाम है:

AlertDialog.Builder dlgAlert  = new AlertDialog.Builder(this);
dlgAlert.setMessage("This is an alert with no consequence");
dlgAlert.setTitle("App Title");
dlgAlert.setPositiveButton("OK", null);
dlgAlert.setCancelable(true);
dlgAlert.create().show();

मुझे एंड्रॉइड में एक संदेश बॉक्स प्रदर्शित करने के बारे में कैसे जाना चाहिए?


किसी तरह अपने कोड के रूप में मेरे लिए काम किया है। हो सकता है कि मेरी sdk सेटिंग्स के <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="15" />साथ कुछ ऐसा हो, जिससे मुझे कोई संकलन त्रुटि नहीं मिली जो आप सुझा रहे हैं।
RBT

जवाबों:


72

मुझे लगता है कि समस्या हो सकती है कि आपने ठीक सकारात्मक बटन के लिए क्लिक श्रोता को नहीं जोड़ा है।

dlgAlert.setPositiveButton("Ok",
    new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
          //dismiss the dialog  
        }
    });

30

चूंकि आपकी स्थिति में आप केवल एक छोटे और सरल संदेश के साथ उपयोगकर्ता को सूचित Toastकरना चाहते हैं, एक बेहतर उपयोगकर्ता अनुभव के लिए बना देगा।

Toast.makeText(getApplicationContext(), "Data saved", Toast.LENGTH_LONG).show();

अद्यतन: एक Snackbar सामग्री डिज़ाइन किए गए एप्लिकेशन के लिए एक टोस्ट के बजाय अब सिफारिश की है।

यदि आपके पास एक अधिक लंबा संदेश है जिसे आप पढ़ने और समझने के लिए पाठक को समय देना चाहते हैं, तो आपको एक का उपयोग करना चाहिए DialogFragment। ( दस्तावेज़ वर्तमान AlertDialogमें सीधे कॉल करने के बजाय आपके टुकड़े में लपेटने की सलाह देता है।)

एक कक्षा बनाएँ जो विस्तारित हो DialogFragment:

public class MyDialogFragment extends DialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        // Use the Builder class for convenient dialog construction
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("App Title");
        builder.setMessage("This is an alert with no consequence");
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                // You don't have to do anything here if you just 
                // want it dismissed when clicked
            }
        });

        // Create the AlertDialog object and return it
        return builder.create();
    }
}

फिर अपनी गतिविधि में आवश्यकता होने पर इसे कॉल करें:

DialogFragment dialog = new MyDialogFragment();
dialog.show(getSupportFragmentManager(), "MyDialogFragmentTag");

यह सभी देखें

यहाँ छवि विवरण दर्ज करें


टोस्ट के बारे में महान विचार। मेरे लिए इसे आयात की आवश्यकता थी: [import android.widget.Toast?]
एन्थोनीवो

9

कोड मेरे लिए ठीक संकलित करता है। हो सकता है कि आप आयात जोड़ना भूल गए हों:

import android.app.AlertDialog;

वैसे भी, आप यहाँ एक अच्छा ट्यूटोरियल है


3
@Override
protected Dialog onCreateDialog(int id)
{
    switch(id)
    {
    case 0:
    {               
        return new AlertDialog.Builder(this)
        .setMessage("text here")
        .setPositiveButton("OK", new DialogInterface.OnClickListener() 
        {                   
            @Override
            public void onClick(DialogInterface arg0, int arg1) 
            {
                try
                {

                }//end try
                catch(Exception e)
                {
                    Toast.makeText(getBaseContext(),  "", Toast.LENGTH_LONG).show();
                }//end catch
            }//end onClick()
        }).create();                
    }//end case
  }//end switch
    return null;
}//end onCreateDialog
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.