私はSQLiteDatabase
を作成しました。「表示」ボタンをクリックするとそのアイテムを見ることができ、データベース全体をListView
にします。このListView
では、アイテムをクリック可能にしたいと思います。そのアイテムをクリックすると、同じ名前の別のIDを持つ新しいエントリを追加したいと思います。これまでの私のコード:Clickable ListViewアイテムにはSQL関数の新しいアイテムが必要です。
ListView lv;
ArrayList<String> todoItems = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, todoItems));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
hornot info = new hornot(this);
info.open();
Cursor c = info.getAllTitles();
if (c.moveToFirst())
{
do{
todoItems.add(c.getString(0) + " " + c.getString(1) + " " + c.getString(2));
}while (c.moveToNext());
}
if (todoItems.size() > 0)
{
lv.setAdapter(new ArrayAdapter<String>(sqview.this,android.R.layout.simple_list_item_1, todoItems));
}
lv.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//-/////////////////////////
}
});
info.close();
}
見ての通り、私はその後、私はListView
に入れて、配列にデータベースのアイテムを置きます。私はアイテムを追加することができるアップグレードボタンを使用して、私はここで何か同じことをする必要があると思う。 dbhelper
createEntry
機能で :
EditTexts
Strings
に、データベースに値を入れて変換
main.java
で
public long createEntry(String name, String hotness) {
ContentValues cv = new ContentValues();
cv.put(KEY_NAME, name);
cv.put(KEY_HOTNESS, hotness);
return ourDatabase.insert(DATABASE_TABLE, null, cv);
}
:
String name = sqlName.getText().toString();
String hotness = sqlHotness.getText().toString();
hornot entry = new hornot(dbhelp.this);
entry.open();
entry.createEntry(name, hotness);
entry.close();
だから私はonItemClick
機能のために書くべきか?
エラーが発生しました:データベースが行内に開いていません: info.createEntry(data [0]、data [1]); しかし、私はsetonitemclickの後に閉じてしまうので、それはdefinitly openです。 –
@JaniBelaその行の前に 'entry.open();'を追加します。 ' – Luksprog
追加: info.open(); info.createEntry(データ[0]、データ[1]); \t info.close();それは今大丈夫です –