My Listviewは、ローカルデータベースに保存された情報を取得し、その情報を表示します。私はリストビューの項目をクリックすると何が起こるかを変更しています。私はそれらを削除したい、私のコードを使用して誰もこの問題で私を助けることができますか?前もって感謝します!ListViewアイテムの作成Clickable Trouble
public class Notepad extends ListActivity {
public static final int INSERT_ID = Menu.FIRST;
EditText notes;
Button add;
ListView lv;
String currentDateTimeString = DateFormat.getDateInstance().format(
new Date());
private NotesDbAdapter mDbHelper;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.notepad_list);
mDbHelper = new NotesDbAdapter(this);
mDbHelper.open();
fillData();
Button add = (Button) findViewById(R.id.addNote);
// ListView lv = (ListView) findViewById(R.id.list);
add.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
createNote();
}
});
// lv.setOnItemClickListener(new OnItemClickListener() {
//
// public void onItemClick(AdapterView<?> parent, View view,
// int position, long id) {
// // When clicked, show a toast with the TextView text
//
// try {
// Toast.makeText(getApplicationContext(),
// ((TextView) view).getText(), Toast.LENGTH_SHORT)
// .show();
//
// } catch (ClassCastException e) {
// Toast.makeText(getApplicationContext(), "Error",
// Toast.LENGTH_SHORT).show();
// }
//
// };
//
// });
}
private void createNote() {
EditText notes = (EditText) findViewById(R.id.note);
String noteName = notes.getText().toString();
Calendar c = Calendar.getInstance();
int seconds = c.get(Calendar.SECOND);
int minutes = c.get(Calendar.MINUTE);
int hour = c.get(Calendar.HOUR);
mDbHelper.createNote(noteName + " Entered at " + hour + ":" + minutes
+ ":" + seconds, "");
fillData();
}
private void fillData() {
// Get all of the notes from the database and create the item list
Cursor c = mDbHelper.fetchAllNotes();
startManagingCursor(c);
String[] from = new String[] { NotesDbAdapter.KEY_TITLE };
int[] to = new int[] { R.id.text1 };
// Now create an array adapter and set it to display using our row
SimpleCursorAdapter notes = new SimpleCursorAdapter(this,
R.layout.notes_row, c, from, to);
setListAdapter(notes);
}
}
マイリストビュー:
<ListView
android:id="@id/android:list"
android:layout_width="wrap_content"
android:layout_height="402dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_below="@+id/note" >
</ListView>
私はあなたが何を意味しているのかわかりません –
あなたの質問から理解することは、ListViewでクリックしたアイテムを削除したいということです。問題は、ListViewからDBにリンクすることができないことです。これが私の答えです。 DB内の各アイテムは_idを持ち、viewBinder(最初はDBからLVを埋めます)は、LVの各アイテム(質問内のR.id.text1)のタグをこの_idに設定します。アイテムをクリックすると、リスナーはアイテムのタグ(先に設定)を使用してDBを参照し、DBからこの行を削除してから、LVをリフレッシュしてクリックしたアイテムなしで新しいデータを取得します –
それは完全に、申し訳ありません。しかし今のところ、私はクリックしたときに私のリストビューの項目にアクセスするのに驚いた。私は私のXMLに私のリストにアクセスする方法がわかりません。 –