我想從tableName中使用SELECT *來獲取Array的列表。但我只是以奇怪的方式獲得最後一排。我以示例向我們展示。我只有兩行數據,我手動輸入。我們假設數據是StackOverFlow和Google分別使用Ids 1和2。我得到的只有Google和Google兩次。這是我的代碼;僅獲得arraylist中的最後一行
投資組合課;
trainingArrayList = new ArrayList<Training>();
//creates and open the database so we can use it
DatabaseHelper db = DatabaseHelper.getInstance();
// Getting a cursor to fetch data from the database
final Cursor cursor = db.select("SELECT * FROM training");
if (cursor.moveToFirst()) {
while (cursor.isAfterLast() == false) {
Training training = Training.getInstance();
training.setId(cursor.getInt(cursor
.getColumnIndex(DatabaseHelper.TRAINING_ID)));
training.setTitle(cursor.getString(cursor
.getColumnIndex(DatabaseHelper.TRAINING_TITLE)));
training.setDescription(cursor.getString(cursor
.getColumnIndex(DatabaseHelper.TRAINING_DESCRIPTION)));
training.setDate(cursor.getString(cursor
.getColumnIndex(DatabaseHelper.TRAINING_DATE)));
training.setLocation(cursor.getString(cursor
.getColumnIndex(DatabaseHelper.TRAINING_LOCATION)));
this.trainingArrayList.add(training);
cursor.moveToNext();
}
}
我的研修班是:
public class Training {
private static Training instance = null;
// global variables
public int id;
public String title;
public String description;
public String date;
public String location;
private Trainer trainer;
private ArrayList<Trainee> traineeArrayList;
private Training(){
//Restrict the constructor from being instantiated
}
public static Training getInstance(){
if(instance == null){
instance = new Training();
}
return instance;
}
// Constructor
public Training(int _id, String title, String description, String date,
String location) {
this.id = _id;
this.title = title;
this.description = description;
this.date = date;
this.location = location;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public Trainer getTrainer() {
return trainer;
}
public Training (Context context) {
DatabaseHelper db = DatabaseHelper.getInstance();
traineeArrayList = new ArrayList<Trainee>();
Cursor cursor = db.select("SELECT * FROM person p JOIN attendance a ON p.person_id = a.person_id WHERE training_id="+this.getId()+";");
while (cursor.moveToNext()) {
Trainee trainee = new Trainee();
trainee.setID(cursor.getInt(cursor.getColumnIndex(DatabaseHelper.PERSON_ID)));
trainee.setFirstname(cursor.getString(cursor.getColumnIndex(DatabaseHelper.PERSON_FIRSTNAME)));
trainee.setLastname(cursor.getString(cursor.getColumnIndex(DatabaseHelper.PERSON_LASTNAME)));
//TODO
// Pass to the arraylist
this.traineeArrayList.add(trainee);
}
}
/* returns the title of training in training ;ist.
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return title;
}
我的主要活動類:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
portfolio = new Portfolio(this);
trainingListAdapter = new ArrayAdapter<Training>(this,
android.R.layout.simple_list_item_1,
portfolio.getTrainingArrayList());
setListAdapter(trainingListAdapter);
在主要活動中調試portfolio.getTrainingArrayList()。 –