使用Android Studio在listView上创建AlertDialog时出现Theme.AppCompact问题

使用Android Studio在listView上创建AlertDialog时出现Theme.AppCompact问题,android,Android,我正在创建一个应用程序,它从解析数据库中提取数据,并将其显示在列表中。我想在列表上设置一个点击器,当你点击一个项目时,会弹出一个警告对话框,确认是/否,然后进入文本输入 我目前有listclicking/alert处理程序的代码 public void getClicker(){ list.setClickable(true); list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

我正在创建一个应用程序,它从解析数据库中提取数据,并将其显示在列表中。我想在列表上设置一个点击器,当你点击一个项目时,会弹出一个警告对话框,确认是/否,然后进入文本输入

我目前有listclicking/alert处理程序的代码

public void getClicker(){
        list.setClickable(true);
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Object o = list.getItemAtPosition(position);
                Toast.makeText(ListPull.this, o.toString(), Toast.LENGTH_LONG).show();

                AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
                builder.setTitle("Confirm");
                builder.setMessage("Are you sure?");
                builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {

                        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
                        builder.setTitle("Input Found Location");
                        // Set up the input
                        final EditText input = new EditText(getApplicationContext());
                        // 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 | InputType.TYPE_TEXT_VARIATION_PASSWORD);
                        builder.setView(input);
                        // Set up the buttons
                        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                foundinput = input.getText().toString();
                            }
                        });
                        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.dismiss();
                            }
                        });
                        AlertDialog alert = builder.create();
                        alert.show();
                    }
                });
                builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // Do nothing
                        dialog.dismiss();
                    }
                });
                AlertDialog alert = builder.create();
                alert.show();
            }
        });
    }

我已经检查了所有的主题,现在已经将它们设置为Theme.AppCompact,但它仍然给出了错误。除了必须测试clicker并确定它是正确的和有效的之外,因为我可以让它生成我所单击的字符串的祝酒词

不要使用应用程序上下文来膨胀视图、构建视图或构建对话框<代码>新建AlertDialog.Builder(getApplicationContext())正在终止它


Context Context=view.getContext()
可能是一个不错的选择。

不要使用应用程序上下文来膨胀视图、构造视图或构造对话框<代码>新建AlertDialog.Builder(getApplicationContext())正在终止它


Context Context=view.getContext()
可能是一个不错的选择。

不要使用应用程序上下文来膨胀视图、构造视图或构造对话框<代码>新建AlertDialog.Builder(getApplicationContext())正在终止它
Context Context=view.getContext()
可能是一个不错的选择。我发现最好的方法是将
view.getContext()
放在
new AlertDialog.Builder(view.getContext())
中,但它完全可以工作,谢谢。不要使用应用程序上下文来膨胀视图、构造视图或构造对话框<代码>新建AlertDialog.Builder(getApplicationContext())正在终止它
Context Context=view.getContext()
可能是一个不错的选择。我发现最好的方法是将
view.getContext()
放在
new AlertDialog.Builder(view.getContext())
中,但它完全起作用了,谢谢。谢谢这非常有效,我刚把
view.getContext()放进去
AlertDialog.Builder(view.getContext())的内部
谢谢这很好地工作了我刚刚把
view.getContext()
放在
AlertDialog.Builder(view.getContext())的内部
 java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
                                                                                         at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:310)
                                                                                         at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:279)
                                                                                         at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:253)
                                                                                         at android.support.v7.app.AppCompatDialog.setContentView(AppCompatDialog.java:76)
                                                                                         at android.support.v7.app.AlertController.installContent(AlertController.java:213)
                                                                                         at android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:240)
                                                                                         at android.app.Dialog.dispatchOnCreate(Dialog.java:394)
                                                                                         at android.app.Dialog.show(Dialog.java:295)
                                                                                         at com.example.sammercer.muskateersfinal.ListPull$4.onItemClick(ListPull.java:262)
                                                                                         at android.widget.AdapterView.performItemClick(AdapterView.java:310)
                                                                                         at android.widget.AbsListView.performItemClick(AbsListView.java:1145)
                                                                                         at android.widget.AbsListView$PerformClick.run(AbsListView.java:3042)
                                                                                         at android.widget.AbsListView.onTouchUp(AbsListView.java:3891)
                                                                                         at android.widget.AbsListView.onTouchEvent(AbsListView.java:3656)
                                                                                         at android.view.View.dispatchTouchEvent(View.java:9294)
                                                                                         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2547)
                                                                                         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2240)
                                                                                         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
                                                                                         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                                         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
                                                                                         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                                         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
                                                                                         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                                         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
                                                                                         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                                         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
                                                                                         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                                         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
                                                                                         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                                         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
                                                                                         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                                         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
                                                                                         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                                         at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2403)
                                                                                         at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1737)
                                                                                         at android.app.Activity.dispatchTouchEvent(Activity.java:2765)
                                                                                         at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
                                                                                         at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2364)
                                                                                         at android.view.View.dispatchPointerEvent(View.java:9514)
                                                                                         at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4230)
                                                                                         at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4096)
                                                                                         at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
                                                                                         at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
                                                                                         at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
                                                                                         at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3787)
                                                                                         at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669)
                                                                                         at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3844)
                                                                                         at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
                                                                                         at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
                                                                                         at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
                                                                                         at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669)