2015-10-25 5 views
0

Я пытаюсь воссоздать некоторые настольные игры на Android, и я застрял в использовании объектов.Java: использование объектов, созданных в другом файле класса

У меня в основном есть один основной класс активности, который выполняет все изменения и вычисления пользовательского интерфейса, но я должен где-то создавать карты. Я могу сделать это без проблем в основном мероприятии после создания класса 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, если это может помочь)

ответ

0

Самый простой подход: поместить все карты в базу данных и просто загружать их оттуда.

Не уверен, правильно ли я понял вопрос, но не является ли простой поставщик старого экземпляра просто предоставить структуру, в которой вы нуждаетесь, следующим образом?

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(); 

Или вопрос о том, имеет ли определение 150 карт вне любого класса Java? Тогда .properties файлы - это путь.

+0

Кажется, что это полностью сделано. Я могу обойтись с Java, но мне нужно многому научиться, когда дело касается объектов. Я не думал об использовании третьего класса (помимо основного вида деятельности и WonderCard). Ваш код был на месте, и я кое-что узнал. У вас есть моя благодарность. –

Смежные вопросы