布局Inflater崩溃问题(Android)

时间:2014-08-06 22:43:56

标签: android android-layout android-xml layout-inflater

我是初学者Android程序员。

我正在为一个小型安卓游戏创建一个商店对话框。 然后决定使每个商店项目成为自定义视图/组视图。 我成功为它做了一个课程,但无法在我的 xml 布局文件中显示它。 当商店对话框打开时,一切都崩溃了。

自定义视图类:

public class ShopItem extends RelativeLayout {
    public ShopItem(Context context, AttributeSet attributeSet) {
        super(context, attributeSet);
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.shopcustomvielayout, this);
    }
}

是的,我知道我不应该使用 AbsoluteLayout ,但由于我使用的是对话框,因此它可以完美缩放(它根本不会缩放)并且最适合我目前的用途

这是我在对话框/商店布局文件中使用的代码。

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

    android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:background="#E8E8E8"
    android:scrollbars="vertical"
    android:scrollbarAlwaysDrawVerticalTrack="true">
<view class="com.example.Example.MyActivity$ShopItem"
      android:id="@+id/ShopItem1"
      android:layout_width="fill_parent"
      android:layout_height="56dp"
      android:layout_x="5dp" android:layout_y="40dp"/>

</AbsoluteLayout>

我拥有的所有其他代码应该可以正常工作,因为我之前写过它并且工作得很好。

我已经挣扎了3天,有人可以帮助我吗?

非常感谢帮助我的每个人,我能够找出问题和我的愚蠢错误。

2 个答案:

答案 0 :(得分:0)

使用logcat中的堆栈跟踪最容易调试这些类型的错误。此外,请确保您确定知道实际导致崩溃的线路。附上调试器并查看。

问题看起来是由于您继承了RelativeLayout。我不确定你要在这里完成什么,但是如果你想要一个对话框,请使用对话框类并将其视图设置为布局视图。

本文档提供了一些很好的代码片段,解释了如何为对话框使用自定义布局:http://developer.android.com/guide/topics/ui/dialogs.html

答案 1 :(得分:0)

显然,我将我的ShopItem课程放在了我的MainActivity课程中。 这就是它崩溃的原因。

请记住:另一个类中的每个类都保留在该类中,并且只在该类中直接使用。但是如果你想在全球范围内访问一个类,那就把它给它自己的文件。