0

現在のスキルレベルを超えているように見えるAndroid開発の問題があります。問題は次のとおりです。SQLiteデータベースとコンテンツプロバイダーがあります。ListActivity簡単に言うと、ボタンをクリックすると、 (または場合によっては)を介して保存されたアイテムの一部が画面に表示されるのを見たいのですが、そのListView方法がわかりません。

関連するstackoverflowWebページを読みましたが、質問に適切に答えることができません。

要約する:

SQLiteデータベースがすでに作成されていると仮定します。

SQLiteデータベースが空でない場合は、このSQLiteデータベースからいくつかのデータを選択してください。

  • ListActivityこれらの選択したデータを含むものを作成します。
  • 作成するButton
  • クリックButton
  • クリックすると、データベースに保存されている選択したアイテムが。を介して表示されますListActivity

あなたが私を助けてくれないかと思っていました。

どうもありがとうございます。

4

2 に答える 2

0

データは SQLite データベースにありますか?それともコンテンツ プロバイダーにありますか? 2つは異なります。データがコンテンツ プロバイダーにある場合は、ローダーを使用してデータを取得し、CursorAdapter を使用してデータを ListView にバインドします。バックグラウンドでのデータのロードを参照してください。また、ボタンの onClick メソッドからローダーを初期化します (initLoader() を呼び出します)。これは、setOnClickListener() を使用して匿名クラスを使用してプログラムで設定するか、XML で Button の onClick 属性を使用して設定できます。

CursorLoader の利点は、データの観察が含まれていることです。Cursor を裏打ちするデータが変更されると、CursorLoader は自動的に onLoaderReset を呼び出し、次に onCreateLoader を呼び出します。これは、私が提供したリンクで詳しく説明されています。

API ガイドのリスト ビューでは、ListView を Cursor にバインドし、Loader を使用する手順について説明しています。

注: 私は常に ListView とアダプターに混乱していました。ListView には2 つのレイアウトが必要です。

  1. ListView ビュー オブジェクトを含む、画面全体を表すレイアウト。
  2. リスト内の各行または項目のレイアウトを説明するレイアウト。

通常は、CursorAdapter を使用して Cursor を ListView にバインドします。CursorAdapter のデフォルトの実装では、次のことを前提としています。

  • カーソルには「_ID」という名前の列が含まれています
  • 表示する Cursor の各列は、行レイアウトの 1 つのビューに移動します。
  • データは、中間の計算や処理なしでカーソルからライン レイアウトに転送できます。

Cursor にすべての列を表示する必要はありませんが、ライン レイアウトの各ビュー オブジェクトは 1 列しか使用できません。

于 2013-03-12T00:32:26.857 に答える
0

探しているのがリストビューを更新する方法だけである場合は、リストビュー アダプターで notifyDataSetChanged を呼び出すことを検討してみてください。

于 2013-03-11T21:30:36.467 に答える