android-ListView onItemClick从数据库中获取行?

我对Android开发来说还很陌生.我有一个自定义ListView,其中填充了DatabaseTable中的数据. ListView项由CATEGORY,DATE,TITLE和AMOUNT组成.

private class lvIncomeListener implements AdapterView.OnItemClickListener {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        String item = ???;
        displayItemClicked("List-item Clicked:",item);

    }
}

现在,我想将一个OnItemClickListener添加到ListView,以便在单击列表中的项目时,一个DialogFragment将显示ListView中显示的数据库中该特定行的数据,例如

“点击的物品:类别:食物,日期:17/10/25,标题:餐厅,金额:20sek”

…实现这一目标的最佳方法是什么?

最佳答案
由于您具有自定义适配器,因此我假设您有一个自定义类,您可以在其中存储列表数据,如下所示:

public class YourListData {

    private String catagory;
    private String date;

    public YourListData(){
    }


    public void setCatagory(String cat){ this.catagory = cat; }
    public void setDate(String date){ this.date = date; }

    public String getCatagory(){ return this.catagory; }
    public String getDate() { return this.date; }
}

现在,在Activity中的onItemClick方法中,获取如下列表数据:

mYourListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        YourListData data = (YourListData) parent.getItemAtPosition(position);
        String cat = data.getCatagory();
        String date = data.getDate();
        //...

        //Send data to your fragment
    }
});

转载注明原文:android-ListView onItemClick从数据库中获取行? - 代码日志