Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中将数据从数据库发送到列表视图_Android_Database_Sqlite - Fatal编程技术网

在android中将数据从数据库发送到列表视图

在android中将数据从数据库发送到列表视图,android,database,sqlite,Android,Database,Sqlite,我一直在尝试将从android数据库检索到的数据打印到列表视图,但当我得到数据时,我没有打印出任何内容。我相信我可能遗漏了一些代码,但我不确定 以下是我必须从数据库中检索和打印的代码: public class DrinksDiaryActivity extends Activity { private ListView listView; public static ArrayList<String> ArrayOfDrink = new ArrayList<

我一直在尝试将从android数据库检索到的数据打印到列表视图,但当我得到数据时,我没有打印出任何内容。我相信我可能遗漏了一些代码,但我不确定

以下是我必须从数据库中检索和打印的代码:

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

        }