1

私は sqlite データベースを初めて使用します。テストとしてデータベースを作成しました。そしてテストとしてのテーブル。テスト テーブルでは、1 つはkey_idもう 1つは という 2 つの列を作成しましmenunameた。

menunameskey_id とともにテスト テーブルにいくつか挿入しました。menunames次に、simplecursor アダプターを使用して sqlite データベースからカスタム リストビューにフェッチし、edittext に追加します。

ここに画像の説明を入力

URL には、私の出力スクリーン ショットが含まれています。menunamesAndroidでメニューボタンをクリックした後にedittextの一部を変更すると、保存ボタンが表示されます。保存ボタンをクリックすると、編集中のメニュー名が oldmenunamesまたは usingに置き換えられkey_idます。

カスタムリストビューのメニュー項目名をAndroidのsqliteデータベースに更新するにはどうすればよいですか?

私はこのコードを試しました:

         public class EditMainMenu extends Activity {
private SQLiteAdapter mySQLiteAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.editmainmenu);
    ListView listContent = (ListView) findViewById(R.id.contentlist);
    mySQLiteAdapter = new SQLiteAdapter(this);
    mySQLiteAdapter.openToWrite();
    final Cursor cursor = mySQLiteAdapter.queueAll();
    startManagingCursor(cursor);

    String[] from = new String[] { SQLiteAdapter.KEY_CONTENT };
    int[] to = new int[] { R.id.text };

    EditMainMenuListview adapter = new EditMainMenuListview(this,
            R.layout.editmainmenulistview, cursor, from, to);

    listContent.setAdapter(adapter);
    System.out.println("gouthampra");
}

public boolean onCreateOptionsMenu(Menu menu) {
    // TODO Auto-generated method stub
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.save, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    switch (item.getItemId()) {
    case R.id.save:

        break;
    case R.id.back:
        break;

    default:
        break;
    }
    return true;
}
 }

EditMainMenuListview.java

              public class EditMainMenuListview extends SimpleCursorAdapter{

Cursor c;
Context context;
Activity activity;

public EditMainMenuListview(Context context, int layout, Cursor c,
        String[] from, int[] to) {
    super(context, layout, c, from, to);

    this.c = c;
    this.context=context;
    this.activity=(Activity) context;

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if(convertView == null)
        convertView = View.inflate(context, R.layout.editmainmenulistview, null);
    View row = convertView;

    c.moveToPosition(position);

    EditText menuname = (EditText) convertView.findViewById(R.id.text);

  menuname.setFocusable(true);
    menuname.setText(c.getString(1));


    return(row);
}
4

0 に答える 0