मैं नीचे दिए गए कोड के साथ AlertDialog
बना रहा हूं। किसी कारण से मुझे हनीकॉम और ऊपर पर एक अतिरिक्त पृष्ठभूमि (तस्वीर देखें) मिल रही है। कोड क्रैश शहद के नीचे कुछ भी के लिए ठीक है। MyCustomDialog
< एपीआई-11 और Theme.Holo.Dialog
एपीआई-11 और ऊपर के लिए के लिए बस Theme.Dialog
है।एंड्रॉइड अलर्ट संवाद पृष्ठभूमि समस्या API 11+
- कोई विचार क्यों मुझे अतिरिक्त पृष्ठभूमि मिल रही है?
- कोई विचार यह एपीआई < 11 के लिए क्यों दुर्घटनाग्रस्त है? अगर मैं थीम को हटा देता हूं तो यह ठीक काम करता है।
अद्यतन प्रश्न # 2 का उत्तर पता चला। लगता है निर्माता AlertDialog.Builder(Context context, int theme)
एपीआई 11 में शुरू की गई थी मेरे ठीक लाइन के लिए बदलने के लिए बस गया था:
final AlertDialog.Builder builder = (Integer.parseInt(android.os.Build.VERSION.SDK) < 11)? new AlertDialog.Builder(this) : new AlertDialog.Builder(this,R.style.JumpDialog);
मैं अभी भी प्रश्न # साथ मदद की जरूरत 1
private Dialog setupKeyBoardDialog() {
if (mContact.getLocaleId() != -1) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this,R.style.MyCustomDialog);
builder.setTitle("Keyboards");
mKeyboardLayouts = new KeyboardLayoutGroup();
mKeyboardLayouts.layoutNames = new CharSequence[(int) jni.getNumKeyLayouts()];
mKeyboardLayouts.layoutValue = new ArrayList<Integer>();
for (int i = 0; i < jni.getNumKeyLayouts(); i++) {
mKeyboardLayouts.layoutNames[i] = jni.LayoutInfoForIndex(i).getName();
mKeyboardLayouts.layoutValue.add(i, (int) jni.LayoutInfoForIndex(i).getLocale_id());
}
final int selectedItem = mKeyboardLayouts.layoutValue.indexOf(mContact.getLocaleId());
builder.setSingleChoiceItems(mKeyboardLayouts.layoutNames, selectedItem, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
mContact.setLocaleId(mKeyboardLayouts.layoutValue.get(item));
mContactsDB.saveContact(mContact, true);
dialog.dismiss();
initializeSettingsList();
}
});
final AlertDialog dialog = builder.create();
dialog.setButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogBox, int arg1) {
dialogBox.cancel();
}
});
return dialog;
}
return null;
}
, आप Build.VERSION.SDK_INT बजाय का उपयोग करना चाहिए क्योंकि Build.VERSION.SDK मान्य नहीं है। – bCliks
ने बहिष्कृत एपीआई और हार्डकोडेड एपीआई स्तर – Ali
को हटाने के उत्तर को अपडेट किया है, इसलिए अब "Integer.parseInt" की आवश्यकता नहीं है –