9

私のアプリケーションにsqliteデータベースがあります。私はそれを使って拡張可能なリストビューを作りたい。ローカルSQliteデータベースで展開可能なリストビューにデータを入力する方法

私はそのために取るべきアプローチで修正されています。

同じことのためのチュートリアルを見つけようとしましたが、単一のものを見つけることができませんでした。そこでは、エクスパンダブルリストにローカルデータベースを設定しています。

アンドロイドのサイトでは、電話で連絡先の詳細を展開可能なリストに入力するこのチュートリアルがあります。彼らは、私の質問は、私も自分のアプリケーションの中にある私のデータベースのためのコンテンツプロバイダを作成する必要があるコンテンツプロバイダ ExpandableList2.java

からこれをやっていますか?

これは唯一のアプローチですか、それとも他に優れた方法ですか?

+0

最終的にどのようなアプローチが効果的でしたか?私も同様の問題に悩まされています。 – Swayam

+0

解決策はありますか? – silverFoxA

答えて

3

私はexpandablelistviewとデータベースを試すためのプロジェクトを作成していたが、これはあなたがそのためのコンテンツプロバイダを作成する必要はありません

 
final class ExpAdapter extends CursorTreeAdapter { 
     LayoutInflater mInflator; 

     public ExpAdapter(Cursor cursor, Context context) { 
      super(cursor, context); 
      mInflator = LayoutInflater.from(context); 
     } 

     @Override 
     protected void bindChildView(View view, Context context, Cursor cursor, 
       boolean isLastChild) { 
      TextView tvChild = (TextView) view.findViewById(android.R.id.text1); 
      tvChild.setText(cursor.getString(cursor 
        .getColumnIndex(DBHelper.COL_TABLE_CHILD_NAME))); 
     } 

     @Override 
     protected void bindGroupView(View view, Context context, Cursor cursor, 
       boolean isExpanded) { 
      TextView tvGrp = (TextView) view.findViewById(android.R.id.text1); 
      tvGrp.setText(cursor.getString(cursor 
        .getColumnIndex(DBHelper.COL_TABLE_MAIN_NAME))); 
     } 

     @Override 
     protected Cursor getChildrenCursor(Cursor groupCursor) { 
      int groupId = groupCursor.getInt(groupCursor 
        .getColumnIndex(DBHelper.COL_ID)); 
      return aDBHelper.getChildCursor(groupId); 
     } 

     @Override 
     protected View newChildView(Context context, Cursor cursor, 
       boolean isLastChild, ViewGroup parent) { 
      View mView = mInflator.inflate(
        android.R.layout.simple_expandable_list_item_1, null); 
      TextView tvChild = (TextView) mView 
        .findViewById(android.R.id.text1); 
      tvChild.setText(cursor.getString(cursor 
        .getColumnIndex(DBHelper.COL_TABLE_CHILD_NAME))); 
      return mView; 
     } 

     @Override 
     protected View newGroupView(Context context, Cursor cursor, 
       boolean isExpanded, ViewGroup parent) { 
      View mView = mInflator.inflate(
        android.R.layout.simple_expandable_list_item_1, null); 
      TextView tvGrp = (TextView) mView.findViewById(android.R.id.text1); 
      tvGrp.setText(cursor.getString(cursor 
        .getColumnIndex(DBHelper.COL_TABLE_MAIN_NAME))); 
      return mView; 
     } 

    } 
+0

ありがとうございました。しかし、私はCursorApadperTreeでグループと子供のための私のカスタムビューを使用することができないように見えます。これは本当ですか??そして、これを何のために使うべきですか? SimpleCursorTreeAdapterを使用する必要がありますか?任意の提案 –

+0

私はExpandableListActivityも使うべきだと思います。それに取り組んで –

+0

あまりにもあなたの助けをありがとう、それはとても難しいことではなかった..トンで感謝:) –

2

に役立ちます願っています。

  1. DBHelperクラスを作成し、コンテンツプロバイダなしでローカルデータベースからレコードを取得するための関数を作成します。
  2. ローカルデータベースからレコードを保持するためのモデルクラスを作成します。
  3. リストアダプタのデータとして、このモデルクラスを使用します。
関連する問題