我滚动了很多问题,但我没有找到它或只是发现了非特定的答案。
所以我得到了一个SQLite数据库并在ListView中显示它的内容。我提取数据库的内容并将其显示为字符串。现在,如果我点击其中一个项目,我想从数据库中删除它。所以我发现我必须使用DaggerAppComponent.builder()
.application(this) // bind application to component builder
// where is the module?
.build()
适配器。但是,如何获取我单击的项目以及ListView中String后面的对象,然后将其传递给数据库以将其删除?
Greatings
这是我在ListView中显示数据的方法
OnItemClick
这是我的TaskData类
List<TaskData> TaskList = datasource.getAllTasks();
//Daten werden im ArrayAdapter gespeichert
ArrayAdapter<TaskData> TaskListArrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_multiple_choice, TaskList);
ListView TaskDataListView = (ListView) findViewById(R.id.TaskListView);
TaskDataListView.setAdapter(TaskListArrayAdapter);
TaskDataListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
datasource.open();
datasource.deleteTask();
datasource.close();
}
});
}
}
答案 0 :(得分:1)
在 onItemClick
方法中位置将是所点击的项目的位置。这相当于单击的Tasklist的索引(元素)。
因此您可以使用long clickedid = TaskList.get(position).getId();
,这将检索任务的ID。
或者假设deleteTask
方法使用id来标识要删除的行,然后: -
datasource.deleteTask(TaskList.get(position).getid());