Class to Activity传递ArrayList值

时间:2017-08-11 06:28:38

标签: android

我是Android的初学者。我已将输入的值保存到db中,然后将它们存储到ArrayList中。我想获取Activity中的所有值,但我无法将其传递给构造函数。我怎么做?有人可以帮忙吗?

public String printTableData() {
    SQLiteDatabase db = getReadableDatabase();
    Cursor cur = db.rawQuery("SELECT * FROM " + Constants.TABLE_NAME, null);
    if (cur.getCount() != 0) {
        cur.moveToFirst();
        do {
            row_values = "";
            for (int i = 0; i < cur.getColumnCount(); i++) {
                data = new ArrayList<String>();
                row_values = row_values + " || " + cur.getString(i);
            }
            Log.d("LOG_TAG_HERE", row_values);
            data.add(row_values);
        } while (cur.moveToNext());
    }
    return row_values;
}

1 个答案:

答案 0 :(得分:0)

它如此简单易行......有很多方法可以发送和接收活动中的数据。

1-使用Bundle在活动中发送和接收数据。

public ArrayList<String> printTableData() {
SQLiteDatabase db = getReadableDatabase();
Cursor cur = db.rawQuery("SELECT * FROM " + Constants.TABLE_NAME, null);
if (cur.getCount() != 0) {
    cur.moveToFirst();
    do {
        row_values = "";
        for (int i = 0; i < cur.getColumnCount(); i++) {
            data = new ArrayList<String>();
            row_values = row_values + " || " + cur.getString(i);
        }
        Log.d("LOG_TAG_HERE", row_values);
        data.add(row_values);
    } while (cur.moveToNext());
}
return data;

}

在您的活动课程中:

ArrayList<String> data = printTableData();

现在你可以迭代数据循环。

另一种方式是:

在您的第一个活动中

ArrayList<String> myList = printTableData();
intent.putExtra("mylist", myList);
startActivity(intent, AnotherActivity.Class);

在您的另一项活动中:

ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("mylist");

另一种方法是使用Event Bus发送和接收数据。 https://github.com/greenrobot/EventBus