问题描述
我试图在Android上重新创建一些棋盘游戏,但我坚持使用对象。
我基本上有一个主要的活动类,它可以进行所有UI更改和计算,但是我必须在某个地方创建卡。 在其他地方创建了WonderCard类之后,在主活动中我可以做到这一点。
这是WonderCard.java:
package com.example.phil.test3;
public class WonderCard {
int id;
String name_full;
String name_short;
int view_path;
public WonderCard(int id, String name_short, String name_full, int view_path) {
this.id=id;
this.name_full=name_full;
this.name_short=name_short;
this.view_path=view_path;
}
}
这是主要活动中的对象构造:
card = new WonderCard[] {
new WonderCard(0,"Olympia","La Statue de zeus à Olympie",R.mipmap.wondercard_0),
new WonderCard(1,"Gizah","La Grande Pyramide de Gizeh",R.mipmap.wondercard_1),
new WonderCard(2,"Rhodos","Le Colosse de Rhodes",R.mipmap.wondercard_2),
new WonderCard(3,"Babylon","Les Jardins Suspendus de Babylone",R.mipmap.wondercard_3),
new WonderCard(4,"Alexandria","Le Phare d'Alexandrie",R.mipmap.wondercard_4),
new WonderCard(5,"Halikarnassos","Le Mausolée d'Halicarnasse",R.mipmap.wondercard_5),
new WonderCard(6,"Ephesos","Le Temple d'Artémis à Ephèse",R.mipmap.wondercard_6),
};
(对不起法国人)
这样就可以了,从我的主要活动中,我只需要打电话说,
card[0].name_long
获取对象的属性。
目前一切都很好,除非我必须在某个时候创建??150多个卡片。 我想保持我的主要活动尽可能整洁,并希望摆脱主要活动中150行高的对象构造。
我的问题是:如何在另一个文件中创建卡及其属性,然后从主活动文件中轻松调用这些创建的对象?
(如果可能,Android允许我使用SQLite数据库)
1楼
最简单的方法:将所有卡放入数据库,然后从那里加载它们。
不知道我是否理解正确的问题,但是普通的旧实例提供程序是否不提供您所需的结构,如下所示?
public class WonderCardProvider {
private static final WonderCard[] cards = new WonderCard[] {
new WonderCard(0,"Olympia","La Statue de zeus à Olympie",R.mipmap.wondercard_0),
..
};
public static WonderCard[] getAllCards() {
return cards;
}
}
// Note that the `getAllCards()` should probably return in as unmodifiable (thus returning a collection instead of array).
card = WonderCardProvider.getAllCards();
还是在Java类之外定义150张卡的问题?
然后, .properties文件就可以使用。