在 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);
我想在 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);