2012-02-27 20 views
2

私は3つのフィールド、idとトピックと内容を持つテーブルを持っています、idは主キーです。 1)リストビューにトピックを表示し、アダプターを使用して照会結果のデータを入力します。 2)ユーザーがトピックをクリックした場合は、照会で対応するコンテンツをdb内のIDで表示します(トピックは重複する可能性があるためidはdbを照会するものであり、レコードは削除される可能性があるので、idは位置と同じではない可能性があります) idを最初のリスト項目に結合するにはどうすればいいですか?それを得るのは簡単ですが、それを表示しませんでしたか?前もって感謝します。android listview idの組み合わせ

+0

データを単純なアダプタまたはカーソルアダプタの 'ListView 'にどのようにバインドしますか? – Luksprog

+0

あなたのアダプタークラスを投稿してください。 – Hiral

+0

ここで私の答えを参照できます:http://stackoverflow.com/questions/9475636/how-to-get-rowid-of-custom-listviews-selected-rows-child/9476638#9476638 – Hiral

答えて

1

私は現在、私は仕上げているアプリで何か似ています。大きな違いは、ユーザーにデータベースの削除や追加を許可しないということです。だから、私はpositioninview()が次のテーブルを呼び出し、その選択に基づいてカーソルを得ることができます。まず、あなたのデータベースを2つのテーブルにすることをお勧めします。トピックを持つものとあなたのコンテンツを持つもの。コンテンツテーブルに「トップID」の列を追加します。次に、onclicklistenerでメソッドを設定して、クリックされた項目のカーソル内の位置を取得し、そのIDを文字列に保存する必要があります。このIDを使用してカーソルをフィルタリングし、必要なコンテンツを取得します。

public Cursor getSource() 
      { 
      return myDataBase.query(SOURCE_TABLE, new String[]{ 
        KEY_ID, KEY_SOURCEDESC, KEY_CATEGORY,}, 
        KEY_CATEGORY+ "=" + categories.categoryClick, null, null, null, KEY_SOURCEDESC); 
      } 

上記のコードでは、KEY_CATEGORYがトピックキーになります。 categories.categoryClickは保存したIDの値になります。