1

俳優がスクリプトからリハーサルを行うのに役立つ Android アプリを作成しています。ユーザーは、スクリプトからキャラクターを選択してリハーサルを行うことができます。スクリプトは、選択したキャラクターの最初の行までユーザーに表示されます。ユーザーが続行することを決定すると、現在の行が表示され、次の行までの残りのスクリプトが表示されます。ユーザーは再び続行できます。

プレイ全体を SQLite データベースに保存し、データベースでクエリを実行してカスタム ListView を作成します。

私の質問は、データベースでクエリを実行する方法ですが、特定のアイテム (キャラクターの名前など) が見つかったら、アイテムを返すのをやめるにはどうすればよいですか? 結果を Cursor に保存してから、次のメソッドで ListView を設定します。

    private void fillData() {

    mFrom = new String[] { PlayDbAdapter.KEY_CHARACTER,
            PlayDbAdapter.KEY_LINE };
    mTo = new int[] { R.id.textCharacter, R.id.textLine };

    // Now create an array adapter and set it to display using our row
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
            R.layout.play_list_layout, mCursor, mFrom, mTo);

    setListAdapter(adapter);
}

さらに情報やコードが必要な場合は、お知らせください。

ありがとうございました!

4

1 に答える 1

2

Cursor でスクリプトのチャンクを返し、Cursor でアクターの最初の行を検索する方がはるかに効率的です。

それを行う別の方法は、文字の行「コンテキスト」を返すことです。データベースにインデックスを行に保存させます。文字の行のみを含む Cursor を返し、文字の行の前後 10 行を返す 2 番目のクエリを実行します。

于 2012-11-17T21:36:54.203 に答える