首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >问题日志记录数组列表

问题日志记录数组列表
EN

Stack Overflow用户
提问于 2012-01-29 11:53:47
回答 3查看 4.6K关注 0票数 0

我正在尝试记录数组列表的内容。arraylist包含一个带有4个参数的自定义对象。当我执行下面的代码时,我得到了以下日志。我想要的是一个名称、类、三十、九十、名称、类、三十、九十等字符串

自定义对象类:

代码语言:javascript
复制
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;
    }

    }

活动:

代码语言:javascript
复制
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());

日志:

代码语言:javascript
复制
01-28 22:31:44.742: D/Activity(23656): the array contains: [com.Data@40552050]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-29 13:47:36

要实现打印对象字符串的目标,您必须在代码中做两件事。

1)覆盖toString方法。

代码语言:javascript
复制
@Override
public String toString() {
    return "Data [NAME=" + NAME + ", CLASS=" + CLASS + ", THIRTY=" + THIRTY
            + ", NINETY=" + NINETY + "]";
}

2) ArrayList<Data> array是数据对象的集合。您必须指定要打印的对象。您可以通过两种方式来完成此操作。

代码语言:javascript
复制
    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());

您可以遍历数组以打印所有数据对象,如下所示

代码语言:javascript
复制
    for (Data data : array) {
        Log.i("Data",data.toString());
    }
票数 1
EN

Stack Overflow用户

发布于 2012-01-29 11:56:07

向您的Data类添加一个toString()方法。

像这样

代码语言:javascript
复制
public String toString() {
    return NAME + " " + CLASS + " " THIRTY + " " + NINETY;
}
票数 0
EN

Stack Overflow用户

发布于 2012-01-29 11:59:59

调用array.toArray().toString()调用Object类的toString方法,该方法打印数组在内存中所在位置的散列。

我想你想要的东西是这样的:

代码语言:javascript
复制
Log.d(TAG, "added "+ NAME + ":" + CLASS + ":" + THIRTY + ":" + NINETY + " to array";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9050776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档