android dialog自定义布局文件,创建自定义dialog加载布局文件报错

在Android应用开发中,创建了一个自定义Dialog并加载布局文件时遇到错误。布局文件包含三个按钮(相册、相机、取消),但初始化Dialog时出现InflateException。错误出现在尝试将XML布局文件转换为视图的过程中。问题可能与布局文件的XML语法或资源引用有关,需要检查布局文件中按钮的定义和相关资源是否正确引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建自定义dialog加载布局文件报错

布局文件

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#00000000"

android:gravity="bottom"

android:orientation="vertical"

android:padding="10dp">

android:id="@+id/btn_album"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/photo_album_selector"

android:text="@string/album"

android:textColor="@color/black"

android:textSize="18sp"/>

android:layout_width="match_parent"

android:layout_height="0.5dp"

android:background="@color/line"/>

android:id="@+id/btn_camera"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/photo_camera_selector"

android:text="@string/camera"

android:textColor="@color/black"

android:textSize="18sp"/>

android:id="@+id/btn_cancel"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/photo_cancel_selector"

android:paddingBottom="16dip"

android:paddingTop="16dip"

android:text="@string/cancel"

android:textColor="@color/black"

android:textSize="18sp"/>

自定义dialog

import android.app.Dialog;

import android.content.Context;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.view.Window;

import android.view.WindowManager;

import android.widget.Button;

import android.widget.LinearLayout;

import com.zhuying.partner.R;

/**

* 图片选择弹出框

*

* @author fee

* @version 1.0

* @created 2016/04/19

*/

public class ChoicePhotoDialog extends Dialog {

private Context context;

private ClickListenerInterface clickListenerInterface;

public ChoicePhotoDialog(Context context) {

this(context, 0);

}

protected ChoicePhotoDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {

super(context, cancelable, cancelListener);

this.context = context;

}

public ChoicePhotoDialog(Context context, int themeResId) {

this(context,true,null);

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

init();

}

private void init() {

LayoutInflater inflater = LayoutInflater.from(context);

// LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); ;

View view = inflater.inflate(R.layout.dialog_pic_chioce,null);

setContentView(view, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));

Button btn_album = (Button) view.findViewById(R.id.btn_album);

Button btn_camera = (Button) view.findViewById(R.id.btn_camera);

Button btn_cancel = (Button) view.findViewById(R.id.btn_cancel);

btn_album.setOnClickListener(new ClickListener());

btn_camera.setOnClickListener(new ClickListener());

btn_cancel.setOnClickListener(new ClickListener());

Window window = getWindow();

window.setWindowAnimations(R.style.main_menu_animstyle);

WindowManager.LayoutParams lp = window.getAttributes();

WindowManager manager=(WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

lp.x = 0;

lp.y = manager.getDefaultDisplay().getHeight();

// 以下这两句是为了保证按钮可以水平满屏

lp.width = ViewGroup.LayoutParams.MATCH_PARENT;

lp.height = ViewGroup.LayoutParams.WRAP_CONTENT;

// 设置显示位置

onWindowAttributesChanged(lp);

// 设置点击外围解散

setCanceledOnTouchOutside(true);

show();

}

public interface ClickListenerInterface {

void doAlbum();

void doCancel();

void doCamera();

}

public void setClickListenerInterface(ClickListenerInterface clickListenerInterface) {

this.clickListenerInterface = clickListenerInterface;

}

private class ClickListener implements View.OnClickListener {

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btn_album:

clickListenerInterface.doAlbum();

break;

case R.id.btn_camera:

clickListenerInterface.doCamera();

break;

case R.id.btn_cancel:

clickListenerInterface.doCancel();

break;

}

}

}

}

logcat输出

04-20 09:44:58.798 12774-12774/com.zhuying.partner E/AndroidRuntime: FATAL EXCEPTION: main

android.view.InflateException: Binary XML file line #11: Error inflating class

at android.view.LayoutInflater.createView(LayoutInflater.java:613)

at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)

at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)

at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)

at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)

at android.view.LayoutInflater.inflate(LayoutInflater.java:489)

at android.view.LayoutInflater.inflate(LayoutInflater.java:396)

at android.view.LayoutInflater.inflate(LayoutInflater.java:352)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:50)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.java:44)

at android.app.Dialog.dispatchOnCreate(Dialog.java:355)

at android.app.Dialog.show(Dialog.java:260)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:73)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.java:44)

at android.app.Dialog.dispatchOnCreate(Dialog.java:355)

at android.app.Dialog.show(Dialog.java:260)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:73)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.java:44)

at android.app.Dialog.dispatchOnCreate(Dialog.java:355)

at android.app.Dialog.show(Dialog.java:260)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:73)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.java:44)

at android.app.Dialog.dispatchOnCreate(Dialog.java:355)

at android.app.Dialog.show(Dialog.java:260)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:73)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.java:44)

at android.app.Dialog.dispatchOnCreate(Dialog.java:355)

at android.app.Dialog.show(Dialog.java:260)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:73)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.java:44)

at android.app.Dialog.dispatchOnCreate(Dialog.java:355)

at android.app.Dialog.show(Dialog.java:260)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:73)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.java:44)

at android.app.Dialog.dispatchOnCreate(Dialog.java:355)

at android.app.Dialog.show(Dialog.java:260)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:73)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.java:44)

at android.app.Dialog.dispatchOnCreate(Dialog.java:355)

at android.app.Dialog.show(Dialog.java:260)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:73)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.java:44)

at android.app.Dialog.dispatchOnCreate(Dialog.java:355)

at android.app.Dialog.show(Dialog.java:260)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:73)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.java:44)

at android.app.Dialog.dispatchOnCreate(Dialog.java:355)

at android.app.Dialog.show(Dialog.java:260)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:73)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.java:44)

at android.app.Dialog.dispatchOnCreate(Dialog.java:355)

at android.app.Dialog.show(Dialog.java:260)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:73)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.java:44)

at android.app.Dialog.dispatchOnCreate(Dialog.java:355)

at android.app.Dialog.show(Dialog.java:260)

at com.zhuying.partner.widget.ChoicePhotoDialog.init(ChoicePhotoDialog.java:73)

at com.zhuying.partner.widget.ChoicePhotoDialog.onCreate(ChoicePhotoDialog.ja

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值