Ayrıca, parça diyaloğumu etkinliğinden farklı bir temayla göstermeye çalışıyordum ve bu çözümü takip ettim . Yorumlarda bahsedilen bazı kişiler gibi, onu çalıştırmıyordum ve diyalog manifestte belirtilen temayla gösterilmeye devam etti. Sorun şu ki AlertDialog.Builder, onCreateDialogyöntemi kullanarak diyaloğu oluşturuyordum ve bu nedenle onCreateViewbağlantılı olduğum cevapta gösterilen yöntemi kullanmıyordum . Ve ben somutlaştırırken bunun yerine somutlaştırılmış olanı kullanmam gerekirken AlertDialog.Builderbağlamda geçiyordum .getActivity()ConstextThemeWrapper
İşte onCreateDialog'umun kodu:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Create ContextThemeWrapper from the original Activity Context
ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(getActivity(), android.R.style.Theme_DeviceDefault_Light_Dialog);
LayoutInflater inflater = getActivity().getLayoutInflater().cloneInContext(contextThemeWrapper);
// Now take note of the parameter passed into AlertDialog.Builder constructor
AlertDialog.Builder builder = new AlertDialog.Builder(contextThemeWrapper);
View view = inflater.inflate(R.layout.set_server_dialog, null);
mEditText = (EditText) view.findViewById(R.id.txt_server);
mEditText.requestFocus(); // Show soft keyboard automatically
mEditText.setOnEditorActionListener(this);
builder.setView(view);
builder.setTitle(R.string.server_dialog);
builder.setPositiveButton(android.R.string.ok, this);
Dialog dialog = builder.create();
dialog.setCanceledOnTouchOutside(false);
return dialog;
}
Başlangıçta AlertDialog.Buildervarlığı şu şekilde somutlaştırdım:
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
ben değiştirdim:
AlertDialog.Builder builder = new AlertDialog.Builder(contextThemeWrapper);
Bu değişiklikten sonra parça iletişim kutusu doğru temayla gösterildi. Öyleyse, başka biri benzer bir problem yaşıyorsa ve bunu kullanıyorsa, AlertDialog.Builderkurucuya aktarılan içeriği kontrol edin. Bu yardımcı olur umarım! :)