0

だから私はこれを整理するためにできるだけ多くの情報を提供しようとしています. 私のアプリケーションには、標準メソッドが実装されたデータベースが含まれています。1 つまたはすべてのレコードを取得すると、Cursor が返されます。

私のアプリケーションには、ListView、テキスト ボックス、および追加ボタンがあります。これが私が達成しようとしていることです(注意してください、最初が最も重要です):

  • データベースの現在の内容を ListView 領域に表示したいと思います。
  • テキストボックスにあるものをデータベースにボタンで挿入したい(そしてListViewは挿入を表示するために自動的に更新する必要があります)
  • ListView 内の項目をタップして、データベースから削除できるようにしたいと考えています。

getAllRecords() メソッドの戻り値に Cursor を割り当てることで、最初の箇条書きに取り組もうとしました。Cursor c = dba.getAllRecords();. forループを介してフィールドエントリを追加するのにうんざりしていましたが、うまくいきませんでした。

    Button add;
    EditText tm;
    ListView lv;
    DBAdapter dba = new DBAdapter(this);

     @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_general);

            add = (Button) findViewById(R.id.button1);
            tm = (EditText) findViewById(R.id.editText1);
            lv = (ListView) findViewById(R.id.generalList);

            Cursor c = dba.getAllRecords();
            c.moveToFirst();

            // Trying to add database contents to ListView here.

            add.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    insertIntoDatabase();
                }
            });
        }
4

1 に答える 1

0

データベースからのカーソルがあり、リストに表示するものがあり、いくつかのテキスト値のような単純なデータである場合。SimpleCursorAdapter を見てください。状況は次のとおりです。アダプターが必要です。アダプターは、カーソルからロードし、対応するリスト項目を表すレイアウトにプッシュするものです。CursorAdapter から継承するものは何でも良いです。すべては必要な柔軟性に依存するため、必要なだけ実装できます。これは、私が github に投稿したサンプル アプリのスニペットです。 https://github.com/soynerdito/trainningSample/blob/master/src/com/example/sample/app/Dashboard.java また、アプリは市場にあります。「トレーニング」中に使用される非常に単純なアプリです。アプリは「Nerdito Sample」と呼ばれ、それを検索して試してみてください。コードは github にあります。アイテムをデータベースに追加し、リストに表示します。サンプル:

Device device = new Device();
Cursor cursor = mdb.get(device);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
  android.R.layout.simple_list_item_2, cursor, new String[] {
  device.mDescription.mName, device.mDeviceID.mName },
  new int[] { android.R.id.text1, android.R.id.text2 }, 0);

// Create Cursor and set to List
mDeviceListView.setAdapter(adapter);
于 2012-08-24T01:18:49.727 に答える