2017-12-19 5 views
1

私は多くの質問をスクロールしましたが、私はそれを見つけなかったし、不特定の回答を見つけました。アイテムフォームのリストビューからDBを外す

私はSQLiteデータベースを取得し、その内容をListViewに表示します。私はデータベースの内容を抽出し、それをストリングとして表示します。今私はアイテムをクリックして、データベースから削除したい場合。だから私はOnItemClickアダプタを使用する必要があることを知った。しかし、どのように私はアイテムをクリックし、ListViewのStringの後ろにあるオブジェクトを取得して、データベースに渡してそれを削除することができますか?これは、リストビュー内のデータを表示する私の方法である

Greatings

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

これはonItemClickメソッド内私TaskDataクラス

public class TaskData { 
public long id; 
public String type; 
public String name; 
public String owner; 
public String expiration; 

public TaskData(long id, String type, String name, String owner, String expiration) { 
    this.id = id; 
    this.type = type; 
    this.name = name; 
    this.owner = owner; 
    this.expiration = expiration; 
} 

public String toString() { 
    return " Typ: " + type + " Name: " + name + " Owner: " + owner + " Until: " + expiration; 
} 
public long getId(){return id;} 

}

+0

、あなたのコードを追加することができ、使用可能なデータや使用のカスタマイズと – R2R

+0

使用where句を助けるために私たちを助けますアダプター –

+0

私はコードを追加 –

答えて

1

ありますポジションは、クリックされたアイテムの位置になります。これは、クリックされたTasklistのインデックス(要素)に相当します。

long clickedid = TaskList.get(position).getId();を使用すると、タスクのIDが取得されます。

それともdeleteTask方法はその後、削除する行を識別するためのIDを使用していると仮定: - ?

 datasource.deleteTask(TaskList.get(position).getid()); 
関連する問題