如何在列表视图单击使用片段后显示对话框?

时间:2017-03-12 00:36:34

标签: android listview dialog

我是新的Android程序员,点击片段

上的列表视图项后使用Dialog时出现问题
public class FragmentClientes extends Fragment {
ListView fListViewClientes;

 public View onCreateView(final LayoutInflater inflater, final ViewGroup container,
                             Bundle savedInstanceState) {

 fListViewClientes = (ListView) view.findViewById(R.id.listViewClientes);



    fListViewClientes.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {

                createSimpleDialog();

                Toast toast = Toast.makeText(getActivity().getApplicationContext(), "Position!" + position + " Id" + id, Toast.LENGTH_SHORT);
                toast.show();
            }
        });

}      public AlertDialog createSimpleDialog(){             AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()。getParent());

        builder.setTitle("Title")
                .setMessage("Message")
                .setPositiveButton("OK",
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {

                            }
                        })
                .setNegativeButton("NO",
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {

                            }
                        });

        return builder.create();
    }

}

我收到此错误

03-11 17:29:55.642 20960-20960/com.example.riva.ventas E/InputEventReceiver: Exception dispatching input event.
03-11 17:29:55.642 20960-20960/com.example.riva.ventas E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
03-11 17:29:55.644 20960-20960/com.example.riva.ventas E/MessageQueue-JNI: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources$Theme android.content.Context.getTheme()' on a null object reference
                                                                               at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:154)
                                                                               at android.app.AlertDialog$Builder.<init>(AlertDialog.java:379)
                                                                               at com.example.riva.ventas.FragmentClientes.createSimpleDialog(FragmentClientes.java:121)
                                                                               at com.example.riva.ventas.FragmentClientes$2.onItemClick(FragmentClientes.java:104)
                                                                               at android.widget.AdapterView.performItemClick(AdapterView.java:305)
                                                                               at android.widget.AbsListView.performItemClick(AbsListView.java:1146)
                                                                               at android.widget.AbsListView$PerformClick.run(AbsListView.java:3053)
                                                                               at android.widget.AbsListView.onTouchUp(AbsListView.java:3872)
                                                                               at android.widget.AbsListView.onTouchEvent(AbsListView.java:3637)
                                                                               at android.view.View.dispatchTouchEvent(View.java:8471)
                                                                               at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2399)
                                                                               at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2092)
                                                                               at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                               at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                               at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                               at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                               at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                               at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                               at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                               at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                               at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                               at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                               at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                               at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                               at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                               at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                               at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                               at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                               at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                               at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                               at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                               at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                               at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                               at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                               at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2369)
                                                                               at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1719)
                                                                               at android.app.Activity.dispatchTouchEvent(Activity.java:2742)
                                                                               at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:63)
                                                                               at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:63)
                                                                               at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2330)
                                                                               at android.view.View.dispatchPointerEvent(View.java:8666)
                                                                               at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4123)
                                                                               at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3989)
                                                                               at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
                                                                               at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597)
                                                                               at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563)
                                                                               at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3680)
                                                                               at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3571)
                                                                               at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3737)
                                                                               at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
                                                                               at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597)
                                                                            at android.view.ViewRootIm

1 个答案:

答案 0 :(得分:0)

尝试以下代码

  public AlertDialog createSimpleDialog() { 
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // use activity or application context only

            builder.setTitle("Title")
                    .setMessage("Message")
                    .setPositiveButton("OK",
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {

                                }
                            })
                    .setNegativeButton("NO",
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {

                                }
                            });

            return builder.create();
        }

    }