2010-10-19 15 views
10

का उपयोग कर एंड्रॉइड प्रॉम्प्ट उपयोगकर्ता का इनपुट मैं उपयोगकर्ता को एक संवाद का उपयोग करके अपने एंड्रॉइड एप्लिकेशन में इनपुट देने के लिए संकेत देना चाहता हूं। इस मैं क्या पाया है है:एक डायलॉग

AlertDialog.Builder alert = new AlertDialog.Builder(this); 

alert.setTitle("Title"); 
alert.setMessage("Message"); 

// Set an EditText view to get user input 
final EditText input = new EditText(this); 
alert.setView(input); 

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int whichButton) { 
String value = input.getText(); 
// Do something with value! 
} 
}); 

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int whichButton) { 
    // Canceled. 
} 
}); 

alert.show(); 

लेकिन इस मुझे देता है:

android.view.WindowManager $ BadTokenException: खिड़की जोड़ने में असमर्थ - टोकन अशक्त एक आवेदन

है के लिए नहीं है मेरे कोड पर कोई समस्या है ऐसा लगता है कि संवाद पर एक नल तर्क पारित किया गया है लेकिन मुझे पता नहीं चल रहा कि समस्या क्या है।

+1

'स्ट्रिंग मान = input.getText() toString();।' – Fred

उत्तर

8

जब मैंने एक नई परियोजना में अपना कोड चलाया, तो यह ठीक काम किया। तो शायद "इस" है कि आप

  • उपयोग कर रहे हैं नहीं कर रहा है एक गतिविधि
  • एक माता पिता गतिविधि हो सकता है दृश्य अर्थात में गतिविधि नहीं है। यदि यह कुछ गतिविधि का बच्चा है, तो "इस" के बजाय getParent() का उपयोग करें।
  • अशक्त

आशा इस मदद करता है।

3

मैंने एक सहायक वर्ग लिखा है जो कोड की केवल कुछ पंक्तियों के साथ एक त्वरित संवाद बनाना आसान बनाता है।

PromptDialog dlg = new PromptDialog(MainActivity.this, R.string.title, R.string.enter_comment) { 
@Override 
public boolean onOkClicked(String input) { 
    // do something 
    return true; // true = close dialog 
} 
}; 
dlg.show(); 

See full code => Prompt Dialog for Android

संबंधित मुद्दे