2017-08-11 4 views
0

私はAndroidで初心者です。私はdbに値を入力して保存してからArrayListに保存しました。私はActivity内のすべての値を取得したいが、コンストラクタに渡すことはできない。それ、どうやったら出来るの?誰か助けてもらえますか?Activity to ClassListの値を渡すクラス

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
データアクティビティの呼び出しで

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; 
} 

そしてを返すためにあなたの方法を変更し

この方法

ArrayList<String> dataList = printTableData(); 

あなたdataListは今、すべてのデータを持っています。

これはあなたのアクティビティクラスにあると仮定しています。そのヘルパークラスのヘルパークラスのオブジェクトを作成し、オブジェクトからこのメソッドを呼び出す場合

+0

はあなたに感謝' forループからのラインとそれの外に置く( "{}場合" の上に)ありがとうございました... –

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

関連する問題