当前位置: 代码迷 >> Android >> Java:使用在其他类文件中创建的对象
  详细解决方案

Java:使用在其他类文件中创建的对象

热度:69   发布时间:2023-08-04 12:16:01.0

我试图在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数据库)

最简单的方法:将所有卡放入数据库,然后从那里加载它们。

不知道我是否理解正确的问题,但是普通的旧实例提供程序是否不提供您所需的结构,如下所示?

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文件就可以使用。