我正在开发一个Android应用程序,我注意到我在不同的片段/活动中使用相同的对话框。
我试图将它包装在一个类中,但只要有时间显示对话框,我的应用程序就会崩溃。有什么想法吗?
对话框类
public class Diaglogs {
+
+ private Context context;
+
+ public Diaglogs(Context context) {
+ this.context = context;
+ }
+
+ public void createPlaylistDialog() {
+ AlertDialog.Builder builder = new AlertDialog.Builder(context);
+ builder.setTitle("Enter name of the playlist");
+
+ // Set up the input
+ final EditText input = new EditText(context);
+
+ // Specify the type of input expected; this, for example, sets the input as a password, and will mask the text
+ input.setInputType(InputType.TYPE_CLASS_TEXT);
+ builder.setView(input);
+
+ // Set up the buttons
+ builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ String playListName = input.getText().toString();
+ if (!"".equals(playListName)) {
+ Toast.makeText(context, "the c=playlist would be created here", Toast.LENGTH_SHORT);
+ } else {
+
+ }
+ }
+ });
+ builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.cancel();
+ }
+ });
+ builder.show();
+ }
+
+}
错误
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
答案 0 :(得分:0)
答案 1 :(得分:0)
当您可以在不同类型的Activity中使用一个对话框时,会发生此类错误。
因此,您可以在对话框中添加特定的对话框主题,如下例所示:
new AlertDialog.Builder(
new ContextThemeWrapper(context, android.R.style.Theme_Dialog));