【问题标题】:ListView onItemClick get row from Database?ListView onItemClick 从数据库中获取行?
【发布时间】:2017-10-26 03:57:12
【问题描述】:

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

    }
}

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

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

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

【问题讨论】:

  • 我创建了一个自定义适配器。
  • 我在下面得到了很好的帮助,谢谢!

标签: android listview


【解决方案1】:

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

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

【讨论】:

  • 完美,我真的被困在这部分了,现在在你的帮助下一切都变得非常简单:) 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多