在android中将数据从数据库发送到列表视图
我一直在尝试将从android数据库检索到的数据打印到列表视图,但当我得到数据时,我没有打印出任何内容。我相信我可能遗漏了一些代码,但我不确定 以下是我必须从数据库中检索和打印的代码:在android中将数据从数据库发送到列表视图,android,database,sqlite,Android,Database,Sqlite,我一直在尝试将从android数据库检索到的数据打印到列表视图,但当我得到数据时,我没有打印出任何内容。我相信我可能遗漏了一些代码,但我不确定 以下是我必须从数据库中检索和打印的代码: public class DrinksDiaryActivity extends Activity { private ListView listView; public static ArrayList<String> ArrayOfDrink = new ArrayList<
public class DrinksDiaryActivity extends Activity {
private ListView listView;
public static ArrayList<String> ArrayOfDrink = new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drinks_diary);
populateLayoutFromDrinkDiaryTitles();
}
public void onNewDrinkButtonClicked(View v){
Intent drinkEntry = new Intent(this, DrinkEntryActivity.class);
startActivity(drinkEntry);
}
private void populateLayoutFromDrinkDiaryTitles(){
DatabaseHandler db = new DatabaseHandler(this);
List<Drink> drinkEntry = db.getAllDrinkEntrys();
for (Drink cn : drinkEntry) {
String log = "Id: "+cn.getID()+", Drink: " + cn.getDrinkType() + ", Drink Volume: " + cn.getDrinkVolume() + ", Alcohol Percentage: " + cn.getAlcoholPercentage() + ", Time: " + cn.getTimeStamp() +
", Units: " + cn.getUnits();
System.out.println(log);
}
//db.getAllDrinkEntrys();
listView = (ListView) findViewById(R.id.drinkDiaryList);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, ArrayOfDrink);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(getApplicationContext(),
((TextView) v).getText(), Toast.LENGTH_SHORT).show();
}
});
}
}
public class Drink {
int _ID;
String _drinkType;
String _drinkVolume;
String _timeStamp;
String _alcoholPercentage;
String _units;
public Drink(){
}
public Drink(int id, String drinkType, String drinkVolume, String timeStamp, String alcoholPercentage, String units){
this._ID = id;
this._drinkType = drinkType;
this._drinkVolume = drinkVolume;
this._timeStamp = timeStamp;
this._alcoholPercentage = alcoholPercentage;
this._units = units;
}
public Drink(String drinkType, String drinkVolume, String timeStamp, String alcoholPercentage, String units){
this._drinkType = drinkType;
this._drinkVolume = drinkVolume;
this._timeStamp = timeStamp;
this._alcoholPercentage = alcoholPercentage;
this._units = units;
}
public int getID(){
return this._ID;
}
public void setID(int id){
this._ID = id;
}
public String getDrinkType(){
return this._drinkType;
}
public void setDrinkType(String drinkType){
this._drinkType = drinkType;
}
public String getDrinkVolume(){
return this._drinkVolume;
}
public void setDrinkVolume(String drinkVolume){
this._drinkVolume = drinkVolume;
}
public String getAlcoholPercentage(){
return this._alcoholPercentage;
}
public void setAlcoholPercentage(String alcoholPercentage){
this._alcoholPercentage = alcoholPercentage;
}
public String getTimeStamp(){
return this._timeStamp;
}
public void setTimeStamp(String timeStamp){
this._timeStamp = timeStamp;
}
public String getUnits(){
return this._units;
}
public void setUnits(String units){
this._units = units;
}
}
有人能告诉我我做错了什么,以及如何纠正吗
谢谢您的ArrayList ArrayOfDrink
为空,因为您没有向ArrayList中添加任何数据,您正在列表视图中直接设置该ArrayList
我只是添加了饮料类型来展示演示。您可以根据需要添加任何详细信息。在ArrayList
中添加数据,如下所示:
private void populateLayoutFromDrinkDiaryTitles(){
DatabaseHandler db = new DatabaseHandler(this);
List<Drink> drinkEntry = db.getAllDrinkEntrys();
for (Drink cn : drinkEntry) {
String log = "Id: "+cn.getID()+", Drink: " + cn.getDrinkType() + ", Drink Volume: " + cn.getDrinkVolume() + ", Alcohol Percentage: " + cn.getAlcoholPercentage() + ", Time: " + cn.getTimeStamp() +
", Units: " + cn.getUnits();
System.out.println(log);
ArrayOfDrink.add(cn.getDrinkType().toString);
}
private void populatelayofromdrinkdiarytitles(){
DatabaseHandler db=新的DatabaseHandler(此);
List drinkEntry=db.getAllDrinkentry();
用于(饮料cn:drinkEntry){
字符串log=“Id:”+cn.getID()+”,饮料:“+cn.getDrinkType()+”,饮料量:“+cn.getDrinkVolume()+”,酒精百分比:“+cn.getAlcoholPercentage()+”,时间:“+cn.getTimeStamp()”
,单位:“+cn.getUnits();
系统输出打印项次(日志);
ArrayOfDrink.add(cn.getDrinkType().toString);
}
确保您已将数据添加到ArrayOfDrink
数组中。您的ArrayOfDrink
是什么?请再显示一些代码。我已添加了完整的活动,似乎没有向其中添加任何数据。如何将检索到的数据添加到该数组中,我是否感到困惑并创建了更多需要的数组?哪个数据a你想在列表中显示吗?请查看我的答案@user3473008
private void populateLayoutFromDrinkDiaryTitles(){
DatabaseHandler db = new DatabaseHandler(this);
List<Drink> drinkEntry = db.getAllDrinkEntrys();
for (Drink cn : drinkEntry) {
String log = "Id: "+cn.getID()+", Drink: " + cn.getDrinkType() + ", Drink Volume: " + cn.getDrinkVolume() + ", Alcohol Percentage: " + cn.getAlcoholPercentage() + ", Time: " + cn.getTimeStamp() +
", Units: " + cn.getUnits();
System.out.println(log);
ArrayOfDrink.add(cn.getDrinkType().toString);
}