在 Android 中使用适配器中的对话框时显示 FC 错误

show FC error when use DialogBox in Adapter in Android

我想在 Adapter 中使用 DialogBox,当启动应用程序并单击我的意思显示 FC 错误的区域时。

我的适配器代码:

public class newSMS_card_adapter extends
        RecyclerView.Adapter<newSMS_card_adapter.ViewHolder> {
    private static String[] mDataset;
    static public Context context;

    public newSMS_card_adapter(String[] myDataset) {
        mDataset = myDataset;

    }

    @Override
    public newSMS_card_adapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemLayoutView = LayoutInflater.from(parent.getContext()).inflate(
                R.layout.newsms_card_layout, null);


        ViewHolder viewHolder = new ViewHolder(itemLayoutView);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(ViewHolder viewHolder, int position) {

        // use and set objects

        viewHolder.newSMS_sms.setText(mDataset[position].toString());
        viewHolder.versionName=mDataset[position];

    }

    @Override
    public int getItemCount() {
        return mDataset.length;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {

        public TextView newSMS_sms, newSMS_count, newSMS_username, newSMS_hour, newSMS_date, newSMS_category;
        public String versionName;

        public ViewHolder(View itemLayoutView) {
            super(itemLayoutView);

            newSMS_sms = (TextView) itemLayoutView.findViewById(R.id.sms_newsms_text);
            newSMS_count = (TextView) itemLayoutView.findViewById(R.id.newSMS_count_text);
            newSMS_username = (TextView) itemLayoutView.findViewById(R.id.newSMS_username_text);
            newSMS_hour = (TextView) itemLayoutView.findViewById(R.id.newSMS_hour_text);
            newSMS_date = (TextView) itemLayoutView.findViewById(R.id.newSMS_Date_text);
            newSMS_category = (TextView) itemLayoutView.findViewById(R.id.newSMS_category_text);

            newSMS_sms.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {

                    final Dialog dialog = new Dialog(context);
                    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                    dialog.setContentView(R.layout.show_sms__page);


                    //ImageView closeDialog_image = (ImageView) dialog.findViewById(R.id.addSMS_close_image);
                }
            });
        }
    }
}

记录 Cat 错误:

09-20 21:43:34.909    9418-9418/com.tellfa.smsbox E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.tellfa.smsbox, PID: 9418
    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.Dialog.<init>(Dialog.java:160)
            at android.app.Dialog.<init>(Dialog.java:137)
            at com.tellfa.smsbox.adapters.newSMS_card_adapter$ViewHolder.onClick(newSMS_card_adapter.java:78)
            at android.view.View.performClick(View.java:4764)
            at android.view.View$PerformClick.run(View.java:19844)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5349)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
09-20 21:43:36.914    9418-9418/? I/Process﹕ Sending signal. PID: 9418 SIG: 9

请帮我解决一下。 tnx 所有亲爱的 <3

试试这个

YourActivity activity;
public newSMS_card_adapter(....., YourActivity activity) {

    this.activity = activity;

}

现在

final Dialog dialog = new Dialog(activity);

最后,像这样调用适配器的构造函数...

newSMS_card_adapteradapter = new newSMS_card_adapter(...... , YourActivity.this);