9

के साथ विस्तारणीय सूची दृश्य को पॉप्युलेट करने के दृष्टिकोण मेरे पास मेरे एप्लिकेशन में एक स्क्लाइट डेटाबेस है। मैं इसके साथ विस्तारणीय सूची दृश्य बनाना चाहता हूं।स्थानीय एसक्यूलाइट डेटाबेस

मुझे उस दृष्टिकोण के साथ तय किया गया है जिसके लिए मुझे लेना चाहिए।

एक बहुत कोशिश की उसी के लिए एक ट्यूटोरियल खोजने के लिए, लेकिन एक भी एक है, जहां एक स्थानीय डेटाबेस के साथ विस्तार योग्य सूची पॉप्युलेट है नहीं पा सके।

एंड्रॉयड साइट जहां वे फोन में संपर्क विस्तार के साथ विस्तार योग्य सूची को भरने कर रहे हैं में यह एक ट्यूटोरियल है। वे सामग्री प्रदाता 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

मुझे लगता है कि मुझे विस्तारणीय लिस्टएक्टिविटी का भी उपयोग करना चाहिए। इस पर काम कर रहे हैं –

+0

आपकी मदद के लिए बहुत बहुत धन्यवाद, यह इतना मुश्किल नहीं था .. टन में धन्यवाद :) –

2

आप उस के लिए एक सामग्री प्रदाता बनाने के लिए की जरूरत नहीं है उम्मीद है।

  1. एक डीबीहेल्पर क्लास बनाएं और सामग्री प्रदाता के बिना अपने स्थानीय डेटाबेस से रिकॉर्ड्स लाने के लिए फ़ंक्शन बनाएं।
  2. अपने स्थानीय डेटाबेस से रिकॉर्ड रखने के लिए एक मॉडल कक्षा बनाएं।
  3. इस मॉडल वर्ग का उपयोग अपनी सूची एडाप्टर के लिए अपने डेटा के रूप में करें।
0

यदि आपके पास स्थानीय डेटाबेस है, तो सर्वोत्तम दृष्टिकोण CursorTreeAdapter के साथ जाना है क्योंकि यह स्वचालित रूप से सूची को अपडेट करने में संभालता है।

इस पोस्ट को मेरी सहायता से जांचें। ExpandableListView using CursorTreeAdapter with in fragment, Content Provider, LoaderCallbacks and CursorLoader

संबंधित मुद्दे