自定义对话框错误

杰曼·杰森(Germaine Jason)

我在显示“自定义对话框”时遇到了困难。我还尝试在扩展Dialog的自定义类中创建它。

对话XML

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <!-- android:background="@drawable/image_bg" -->

    <ImageView
        android:id="@+id/image_display"
        android:layout_width="250dip"
        android:layout_height="250dip" />

    <TextView
        android:id="@+id/title_display"
        style="@android:style/TextAppearance.Medium"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:padding="5dp" />
</LinearLayout>

<TextView
    android:id="@+id/desc_display"
    style="@android:style/TextAppearance.Small"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:visibility="gone" />

<TextView
    android:id="@+id/url_display"
    style="@android:style/TextAppearance.Small"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:visibility="gone" />

<TextView
    android:id="@+id/loc_display"
    style="@android:style/TextAppearance.Small"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:visibility="gone" />

<RatingBar
    android:id="@+id/priority_display"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:isIndicator="true"
    android:numStars="5"
    android:padding="5dp"
    android:stepSize="1.0"
    android:rating="2.0"
    android:visibility="gone" />

<TextView
    android:id="@+id/price_display"
    style="@android:style/TextAppearance.Small"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:visibility="gone" />

<TextView
    android:id="@+id/ean_display"
    style="@android:style/TextAppearance.Small"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:visibility="gone" />

<TextView
    android:id="@+id/date_display"
    style="@android:style/TextAppearance.Small"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:visibility="gone" />

<Button
    android:id="@+id/button_display"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="OK" />

对话框创建

protected void createDialog(Wish w)
    {

        // 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);
        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);

        title.setText(w.getTitle().toUpperCase());
        title.setTypeface(null, Typeface.BOLD);

        if (w.getImage() != null)
        {
            image.setImageBitmap(decodeBitmap(w.getImage(), image.getWidth(), image.getHeight()));
        }
        else
        {
            Drawable drawable = mContext.getResources().getDrawable(
                    mContext.getResources().getIdentifier("image_preview", "drawable",
                            mContext.getPackageName()));
            image.setImageDrawable(drawable);

        }

        if (w.getDesc() != null)
        {
            desc.setVisibility(View.VISIBLE);
            desc.setText(w.getDesc());
        }

        if (w.getLocation() != null)
        {
            loc.setVisibility(View.VISIBLE);
            loc.setText(w.getLocation());
        }
        else if (w.getUrl() != null)
        {
            url.setVisibility(View.VISIBLE);
            url.setText(w.getUrl());
        }

        if(w.getPriority() != 0)
        {
            rating.setVisibility(View.VISIBLE);
            rating.setRating(w.getPriority());
        }

        dialog.show();
        Log.i("Click List", "Show");


        button.setOnClickListener(new View.OnClickListener() 
        {

            @Override
            public void onClick(View v)
            {
                dialog.dismiss();

            }
        });
    }

日志显示

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)
拉贡南丹

您的视图属于对话框布局。所以使用dialog.findViewById

ImageView image = (ImageView)dialog.findViewById(R.id.image_display);

同样,属于对话框布局的其他视图。

摆脱

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义对话框大小错误

来自分类Dev

WXPYTHON自定义对话框

来自分类Dev

自定义对话框片段

来自分类Dev

自定义对话框太小

来自分类Dev

自定义进度对话框

来自分类Dev

自定义引导对话框

来自分类Dev

自定义对话框的布局

来自分类Dev

如何显示自定义错误对话框,如android中的图片所示?

来自分类Dev

wxWidgets:关闭自定义模式对话框时出现内存错误

来自分类Dev

为什么“自定义错误”对话框不断消失?

来自分类Dev

mahapp 自定义对话框 - wpf 中指示的错误

来自分类Dev

eclipse e4 应用程序中的自定义错误对话框

来自分类Dev

使用Python创建SPSS自定义对话框

来自分类Dev

Android自定义对话框样式

来自分类Dev

自定义对话框打开时强制关闭

来自分类Dev

jQuery UI自定义对话框按钮

来自分类Dev

如何从自定义对话框中删除标题?

来自分类Dev

如何自定义放置Jquery对话框

来自分类Dev

Electron中的自定义HTML对话框

来自分类Dev

在Chain Wix中插入自定义对话框

来自分类Dev

DatePicker的内容与自定义对话框的标题重叠

来自分类Dev

如何制作更好的自定义对话框?

来自分类Dev

设置自定义对话框的高度和宽度

来自分类Dev

在自定义对话框中设置textview

来自分类Dev

设置自定义对话框的时间

来自分类Dev

没有焦点的自定义对话框

来自分类Dev

Android自定义对话框片段崩溃

来自分类Dev

在自定义对话框中填充NumberPicker

来自分类Dev

自定义视图中的Android显示对话框