Вопрос по программированию для Android - PullRequest
3 голосов
/ 24 августа 2010

Привет, я программист, который работал почти исключительно с c ++ / c # / vbs и только сейчас вхожу в мир разработки под Android.Я сталкиваюсь с несколькими проблемами, на которые, похоже, не могу найти ответы на / не хочу смотреть длинные обучающие видео, чтобы выяснить это, поэтому я решил, что задам вопрос здесь и получу быстрый ответ.

Я не знаю, если этоэто лучший способ сделать это, поэтому я открыт для любых предложений.

Мне нужны некоторые пользовательские контейнеры данных для моей программы, скажем, я хочу класс 'Achievement', чтобы я мог иметь их массив!

сейчас в C # я бы сделал что-то вроде

public class Achievment  
{
    bool locked;
    string achName;
    string achSubName;

    public Achievement(string name, string subname)
    {
        //ctor code goes here
    }
}

Это не все, что мне нужно, но это идея макета данных, который я хотел бы.Тем не менее, когда я пытаюсь создать собственный класс в Eclipse, у меня все решает, что «достижения публичного типа должны быть определены в его собственном файле?»Я пишу это в файле приложения .java ... Где-нибудь еще это должно идти?Я так растерялся.По сути, ява может быть просто суахили для меня ... Мне нравятся мои интуитивные макеты c #!

Как будто я хочу хранить свои данные отдельно от своего пользовательского интерфейса, и когда я генерирую «Список достижений», он смотрит намассив достижений текущего пользователя и заполняется оттуда.Хорошо, плохо?

Любые ответы, которые не в форме перенаправления на учебник, приветствуются!

Ответы [ 4 ]

5 голосов
/ 24 августа 2010

Вы должны определить класс Achievement в отдельном файле, который называется Achievement.java. Вам также нужно изменить конструктор, чтобы имя имело имя класса:

...
public Achievement(String name, String subname)
{
    //ctor code goes here
}
...

В Java типом является String, а не string.

4 голосов
/ 24 августа 2010

Вы должны либо удалить публичный модификатор из класса (таким образом, его видимость будет уровнем по умолчанию - видимым только из пакета, в который помещен ваш класс Application), ИЛИ вам нужно переместить ваш класс в файл Achievment.java.

4 голосов
/ 24 августа 2010

В java публичные классы должны находиться в своем собственном файле, имя файла должно совпадать с именем класса (в вашем примере это должно быть в Achievment.java).

1 голос
/ 24 августа 2010

Создайте файл с именем Achievement.java в исходной папке в вашем проекте Eclipse Java.Вы также, вероятно, захотите, чтобы класс существовал в пакете, поэтому, если вы предполагаете, что вашим именем пакета является «com.acme», тогда ваш файл Achievement.java будет существовать в следующей структуре каталогов:предполагая, что вы выполнили шаги, описанные выше, вам также необходимо внести следующие исправления в код, который вы разместили:

package com.acme // NOTE: This maps to the directory structure

public class Achievement {
    private boolean locked;
    private String achName;
    private String achSubName;

    public Achievement(String name, String subname) {
        this.achName = name;
        this.achSubName = subname;
    }

    public boolean isLocked() {
        return this.locked;
    }

    public void setLocked(boolean locked) {
        this.locked = locked;
    }

    public String getName() {
        return this.achName;
    }

    public void setName(String name) {
        this.achName = name;
    }

    // etc ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...