我是初学者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天,有人可以帮助我吗?
非常感谢帮助我的每个人,我能够找出问题和我的愚蠢错误。
答案 0 :(得分:0)
使用logcat中的堆栈跟踪最容易调试这些类型的错误。此外,请确保您确定知道实际导致崩溃的线路。附上调试器并查看。
问题看起来是由于您继承了RelativeLayout。我不确定你要在这里完成什么,但是如果你想要一个对话框,请使用对话框类并将其视图设置为布局视图。
本文档提供了一些很好的代码片段,解释了如何为对话框使用自定义布局:http://developer.android.com/guide/topics/ui/dialogs.html
答案 1 :(得分:0)
显然,我将我的ShopItem
课程放在了我的MainActivity课程中。
这就是它崩溃的原因。
请记住:另一个类中的每个类都保留在该类中,并且只在该类中直接使用。但是如果你想在全球范围内访问一个类,那就把它给它自己的文件。