2017-08-11 67 views
0

我是Android初學者。我已經將輸入值保存到db中,然後將它們存儲到ArrayList中。我想在Activity中獲取所有的值,但是我不能將它傳遞給構造函數。我怎麼做?有人可以幫忙嗎?通過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; 
} 
+0

刪除'數據=新的ArrayList ();'從環線,並把它的外面(上面的「如果{}」) –

回答

1

改變你的方法這種方法

ArrayList<String> dataList = printTableData(); 

dataList目前擁有的所有數據恢復在活動的呼叫數據

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

       row_values = row_values + " || " + cur.getString(i); 
      } 
      Log.d("LOG_TAG_HERE", row_values); 
      data.add(row_values); 
     } while (cur.moveToNext()); 
    } 
    return data; 
} 

然後。

這是假設,這種方法是在你的活動類。如果它在你的輔助類創建一個輔助類的一個對象,然後從對象

+0

謝謝謝謝這麼多... –

0

它很簡單,易於調用此方法......有這麼多的方式在活動發送和收到的數據。

1使用捆綁來發送和接收的活動數據。

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

另一種方法是使用事件總線發送和接收數據。 https://github.com/greenrobot/EventBus