Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义对话框错误_Java_Android_Xml_Android Dialog - Fatal编程技术网

Java 自定义对话框错误

Java 自定义对话框错误,java,android,xml,android-dialog,Java,Android,Xml,Android Dialog,我很难显示自定义对话框。我还尝试在扩展对话框的自定义类中创建它 对话框XML 日志显示 04-10 10:27:26.588: E/AndroidRuntime(12035): FATAL EXCEPTION: main 04-10 10:27:26.588: E/AndroidRuntime(12035): java.lang.NullPointerException 04-10 10:27:26.588: E/AndroidRuntime(12035): at com.exampl

我很难显示自定义对话框。我还尝试在扩展对话框的自定义类中创建它

对话框XML

日志显示

04-10 10:27:26.588: E/AndroidRuntime(12035): FATAL EXCEPTION: main
04-10 10:27:26.588: E/AndroidRuntime(12035): java.lang.NullPointerException
04-10 10:27:26.588: E/AndroidRuntime(12035):    at com.example.youwish.WishAdapter.createDialog(WishAdapter.java:167)
04-10 10:27:26.588: E/AndroidRuntime(12035):    at com.example.youwish.WishAdapter$1.onClick(WishAdapter.java:72)
04-10 10:27:26.588: E/AndroidRuntime(12035):    at android.view.View.performClick(View.java:4475)
04-10 10:27:26.588: E/AndroidRuntime(12035):    at android.view.View$PerformClick.run(View.java:18786)
04-10 10:27:26.588: E/AndroidRuntime(12035):    at android.os.Handler.handleCallback(Handler.java:730)
04-10 10:27:26.588: E/AndroidRuntime(12035):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-10 10:27:26.588: E/AndroidRuntime(12035):    at android.os.Looper.loop(Looper.java:176)
04-10 10:27:26.588: E/AndroidRuntime(12035):    at android.app.ActivityThread.main(ActivityThread.java:5419)
04-10 10:27:26.588: E/AndroidRuntime(12035):    at java.lang.reflect.Method.invokeNative(Native Method)
04-10 10:27:26.588: E/AndroidRuntime(12035):    at java.lang.reflect.Method.invoke(Method.java:525)
04-10 10:27:26.588: E/AndroidRuntime(12035):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
04-10 10:27:26.588: E/AndroidRuntime(12035):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
04-10 10:27:26.588: E/AndroidRuntime(12035):    at dalvik.system.NativeStart.main(Native Method)
试试这个

更改贝洛代码

        ImageView image = (ImageView) ((Activity) mContext).findViewById(R.id.image_display); 
        TextView title = (TextView)  ((Activity) mContext).findViewById(R.id.title_display);
        TextView desc = (TextView)  ((Activity) mContext).findViewById(R.id.desc_display);
        TextView loc = (TextView)  ((Activity) mContext).findViewById(R.id.loc_display);
        TextView url = (TextView)  ((Activity) mContext).findViewById(R.id.url_display);
        RatingBar rating = (RatingBar)  ((Activity) mContext).findViewById(R.id.priority_display);
        TextView price = (TextView)  ((Activity) mContext).findViewById(R.id.price_display);
        TextView barcode = (TextView)  ((Activity) mContext).findViewById(R.id.ean_display);
        TextView date = (TextView)  ((Activity) mContext).findViewById(R.id.date_display);
        Button button = (Button)  ((Activity) mContext).findViewById(R.id.button_display);
作为

并删除

View layout = ((Activity) mContext).findViewById(R.layout.wish_dialog);

您的视图属于对话框布局。因此,请使用dialog.findviewbyd初始化

与此类似,属于对话框布局的其他视图

除掉

View layout = ((Activity) mContext).findViewById(R.layout.wish_dialog);

findViewById查找具有当前视图层次结构中提到的id的视图。将自定义布局设置为对话框。因此,请使用dialog对象来查找视图。

在代码中,您已经分别对视图进行了膨胀,并在对话框中明确设置了布局。因此,代码中没有使用视图布局,因为您已显式设置了布局对话框。setContentViewR.layout.wish_dialog;而它应该类似于dialog.setContentViewlayout

您需要更改以下代码:

  // custom dialog
    final Dialog dialog = new Dialog((Activity) mContext);
    View layout = ((Activity) mContext).findViewById(R.layout.wish_dialog);
    dialog.setContentView(R.layout.wish_dialog);
    dialog.setTitle("Wish");

    ImageView image = (ImageView) ((Activity) mContext).findViewById(R.id.image_display); 
    TextView title = (TextView)  ((Activity) mContext).findViewById(R.id.title_display);
    TextView desc = (TextView)  ((Activity) mContext).findViewById(R.id.desc_display);
    TextView loc = (TextView)  ((Activity) mContext).findViewById(R.id.loc_display);
    ..................................
将上述代码更改如下:

   // custom dialog
    final Dialog dialog = new Dialog((Activity) mContext);
   LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View layout = mInflater.inflate(R.layout.wish_dialog);
    dialog.setContentView(layout);
    dialog.setTitle("Wish");

    ImageView image = (ImageView)layout.findViewById(R.id.image_display); 
    TextView title = (TextView) layout .findViewById(R.id.title_display);
    TextView desc = (TextView) layout .findViewById(R.id.desc_display);
    TextView loc = (TextView)  layout .findViewById(R.id.loc_display);
    TextView url = (TextView) layout .findViewById(R.id.url_display);
    RatingBar rating = (RatingBar)layout .findViewById(R.id.priority_display);
    TextView price = (TextView)layout .findViewById(R.id.price_display);
    TextView barcode = (TextView)layout .findViewById(R.id.ean_display);
    TextView date = (TextView) layout .findViewById(R.id.date_display);
    Button button = (Button) layout .findViewById(R.id.button_display

不仅如此,他还需要改变所有的观点。@kalyanpvs我已经解释过了。但我必须复制并更正所有这些行???@GrIsHu请自己尝试一下commenting@GrIsHu找到一个例子@它不起作用-他在对话框中明确设置了布局。他没有在任何地方使用视图布局。@GrIsHu它会工作的。您正在设置对话框的布局,可以在该视图下找到视图hierarchy@GrIsHu我检查一下。它工作正常。您需要显示对话框的屏幕截图吗。
ImageView image = (ImageView)dialog.findViewById(R.id.image_display);
View layout = ((Activity) mContext).findViewById(R.layout.wish_dialog);
  // custom dialog
    final Dialog dialog = new Dialog((Activity) mContext);
    View layout = ((Activity) mContext).findViewById(R.layout.wish_dialog);
    dialog.setContentView(R.layout.wish_dialog);
    dialog.setTitle("Wish");

    ImageView image = (ImageView) ((Activity) mContext).findViewById(R.id.image_display); 
    TextView title = (TextView)  ((Activity) mContext).findViewById(R.id.title_display);
    TextView desc = (TextView)  ((Activity) mContext).findViewById(R.id.desc_display);
    TextView loc = (TextView)  ((Activity) mContext).findViewById(R.id.loc_display);
    ..................................
   // custom dialog
    final Dialog dialog = new Dialog((Activity) mContext);
   LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View layout = mInflater.inflate(R.layout.wish_dialog);
    dialog.setContentView(layout);
    dialog.setTitle("Wish");

    ImageView image = (ImageView)layout.findViewById(R.id.image_display); 
    TextView title = (TextView) layout .findViewById(R.id.title_display);
    TextView desc = (TextView) layout .findViewById(R.id.desc_display);
    TextView loc = (TextView)  layout .findViewById(R.id.loc_display);
    TextView url = (TextView) layout .findViewById(R.id.url_display);
    RatingBar rating = (RatingBar)layout .findViewById(R.id.priority_display);
    TextView price = (TextView)layout .findViewById(R.id.price_display);
    TextView barcode = (TextView)layout .findViewById(R.id.ean_display);
    TextView date = (TextView) layout .findViewById(R.id.date_display);
    Button button = (Button) layout .findViewById(R.id.button_display