журнал регистрации ошибок - PullRequest
0 голосов
/ 29 января 2012

Я пытаюсь записать содержимое архива. Массив содержит пользовательский объект с 4 параметрами. Когда я выполняю следующий код, я получаю следующий журнал. я хочу получить строку [имя, класс, тридцать, девяносто], [имя, класс, тридцать, девяносто] и т. д.

Класс пользовательских объектов:

public class Data {
        String NAME;
        String CLASS;
        String THIRTY;//this is the thirty day supply
        String NINETY;//this is the ninety day supply

    public Data(){
        super();
    }
    public Data(String NAME, String CLASS, String THIRTY, String NINETY){
        super();
        this.NAME = NAME;
        this.CLASS = CLASS;
        this.THIRTY = THIRTY;
        this.NINETY = NINETY;
    }

    }

Активность:

ArrayList<Data> array = new ArrayList<Data>();

Cursor c = mDBHelper.getReadableDatabase().query(Constants.K_Table, null, Constants.Name +"=?", new String[] {SEARCH}, null, null, null);

            startManagingCursor(c);
            if (c.moveToFirst()){

            NAME = c.getString(c.getColumnIndex(Constants.Name));
            CLASS = c.getString(c.getColumnIndex(Constants.Class));
            THIRTY = c.getString(c.getColumnIndex(Constants.Month));
            NINETY = c.getString(c.getColumnIndex(Constants.Three_Month));

            array.add(new DrugData(NAME, CLASS, THIRTY, NINETY));
            Log.d(TAG, "array contains: "+ array.toArray().toString());
            }while(c.moveToNext());

Вход:

01-28 22:31:44.742: D/Activity(23656): the array contains: [com.Data@40552050]

Ответы [ 3 ]

1 голос
/ 29 января 2012

Чтобы достичь своей цели, выведите строку объекта в вашем коде.1) Переопределить метод toString.

@Override
public String toString() {
    return "Data [NAME=" + NAME + ", CLASS=" + CLASS + ", THIRTY=" + THIRTY
            + ", NINETY=" + NINETY + "]";
}

2) ArrayList<Data> array - это коллекция объектов данных.Вы должны указать, какой объект вы хотите напечатать.Вы можете сделать это двумя способами.

    int index = 0;// Index of object in the ArrayList
    Log.i("Data",array.get(index).toString());//Preferred Method to get object
    Log.i("Data",array.toArray()[index].toString());

Вы можете перебрать свой массив, чтобы напечатать все объекты данных, как это

    for (Data data : array) {
        Log.i("Data",data.toString());
    }
0 голосов
/ 29 января 2012

Вызов array.toArray().toString() вызывает метод Object class 'toString, который печатает хэш местоположения в памяти, где расположен массив.

Я думаю, что вы хотите что-то вроде этого:

Log.d(TAG, "added "+ NAME + ":" + CLASS + ":" + THIRTY + ":" + NINETY + " to array";
0 голосов
/ 29 января 2012

Добавьте toString() метод к вашему Data классу.

вот так

public String toString() {
    return NAME + " " + CLASS + " " THIRTY + " " + NINETY;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...