我是 Android 开发的新手。我有一个自定义 ListView,其中填充了来自 DatabaseTable 的数据。 ListView 项目由类别、日期、标题和金额组成。
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”
...实现这一目标的最佳方式是什么?
最佳答案
因为你有一个自定义适配器,我假设你有一个自定义类,你可以在其中存储你的列表数据,可能是这样的:
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 从数据库中获取行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46940559/