LayoutInflater导致异常

时间:2011-03-14 20:24:49

标签: android xml layout

我正在尝试使用Android布局技巧#3中描述的布局技巧#3:优化,第1部分,当我试图找到我用作按钮obj我的XML文件的png文件时出现错误对于按钮栏是以下.....

<?xml version="1.0" encoding="UTF-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <include
        layout = "@drawable/button_yes"
        android:id="@+id/okLabel" />
    <include
        layout="@drawable/button_no"
        android:id="@+id/cancelLabel" />
</merge>

这是由java脚本调用的......

package com.bobocode.culliganapp;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.FrameLayout;


public class OkCancelBar extends FrameLayout {
    public OkCancelBar(Context context, AttributeSet attrs) {
        super(context, attrs);

        LayoutInflater.from(context).inflate(R.layout.okcancelbar, this, true);

    }
}

由..............

实例化
<merge
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:okCancelBar="http://schemas.android.com/apk/res/com.bobocode.culliganapp">

<FrameLayout android:background="@drawable/culliganapp1"
    android:id="@+id/secondpage"
    android:layout_width="wrap_content" android:layout_height="wrap_content">

     <TextView
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_marginBottom="20dip"
        android:layout_gravity="center|center"
        android:padding="12dip"
        />
        <EditText
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_marginBottom="20dip"
            android:layout_gravity="center|center"
            android:padding="12dip"
            android:background="@color/white"
            android:textSize="24sp"
            android:textColor="@color/black"
            android:text="Does your water have an unpleasant taste or odor?"
            android:id="@+id/question"
             />
</FrameLayout>  
     <com.bobocode.culliganapp.OkCancelBar
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_gravity="bottom"

        android:paddingTop="8dip"
        android:gravity="center_horizontal"

        android:background="#AA000000"
        okCancelBar:okLabel="Yes"
        okCancelBar:cancelLabel="No" 

        />
</merge>

任何帮助肯定会受到赞赏

2 个答案:

答案 0 :(得分:2)

如果你想为你的背景指定一个drawable,你需要在你的drawable目录中包含png,并在你的OkCancelBar上用android:background="drawable/somepng"指定它。

答案 1 :(得分:0)

使用像“yesbutton”这样的普通字符。我不知道你为什么要这样做:

 Layout ="@drawable/button_yes"
 just do something like android:background="@drawable/yesbutton"
 i don't know what 
 layout is, is not even android because all attributs starts with "android:".