5

ध्वस्त हो गया है मैं विस्तारणीय लिस्ट व्यू का उपयोग करके मूल एंड्रॉइड ऐप बनाने की कोशिश कर रहा हूं। डेटा को देखने के बाद मैं केवल समूह देखता हूं, अगर मैं उन समूहों पर क्लिक करता हूं जो वे विस्तार नहीं करते हैं।विस्तारणीय लिस्ट व्यू हमेशा

यहां मेरा कोड है, क्या कोई मदद कर सकता है?

एडाप्टर



    public class PhraseAdapter extends BaseExpandableListAdapter { 

     private LayoutInflater inflater; 

     private List data; 

     public PhraseAdapter(Context context) { 
      inflater = LayoutInflater.from(context); 

     } 

     public void setData(List data) { 
      this.data = data; 
     } 

     public View inflate(int viewId) { 
      View view = inflater.inflate(viewId, null); 
      return view; 
     } 

     public void updateView(List categories) { 
      setData(categories); 
      notifyDataSetChanged(); 
     } 

     static class ViewHolder { 
      TextView name; 
     } 

     static class ViewChildHolder { 
      TextView phonetix; 
      TextView orginal; 
     } 

     @Override 
     public Object getChild(int groupPosition, int childPosition) { 
      return data.get(groupPosition); 
     } 

     @Override 
     public long getChildId(int groupPosition, int childPosition) { 
      return childPosition; 
     } 

     @Override 
     public View getChildView(int groupPosition, int childPosition, 
       boolean isLastChild, View convertView, ViewGroup parent) { 
      final ViewChildHolder holder; 
      if (convertView == null) { 
       convertView = inflater.inflate(R.layout.phrases__extra_item, null); 
       holder = new ViewChildHolder(); 
       holder.phonetix = (TextView) convertView 
         .findViewById(R.id.phrases_phonetix); 
       holder.orginal = (TextView) convertView 
         .findViewById(R.id.phrases_original); 

       convertView.setTag(holder); 
       convertView.setClickable(true); 

      } else { 
       holder = (ViewChildHolder) convertView.getTag(); 
      } 

      holder.phonetix.setText(data.get(groupPosition).getPhonetix()); 
      holder.orginal.setText(data.get(groupPosition).getOriginal()); 
      convertView.setFocusableInTouchMode(true); 
      return convertView; 
     } 

     @Override 
     public int getChildrenCount(int groupPosition) { 
      return 1; 
     } 

     @Override 
     public Object getGroup(int groupPosition) { 
      return data.get(groupPosition); 
     } 

     @Override 
     public int getGroupCount() { 
      return data.size(); 
     } 

     @Override 
     public long getGroupId(int groupPosition) { 
      return groupPosition; 
     } 

     @Override 
     public View getGroupView(int groupPosition, boolean isExpanded, 
       View convertView, ViewGroup parent) { 
      final ViewHolder holder; 

      if (convertView == null) { 
       convertView = inflater.inflate(R.layout.phrases_item, null); 
       holder = new ViewHolder(); 
       holder.name = (TextView) convertView 
         .findViewById(R.id.phrases_text); 
       convertView.setTag(holder); 
       convertView.setClickable(true); 
      } else { 
       holder = (ViewHolder) convertView.getTag(); 
      } 
      holder.name.setText(data.get(groupPosition).getName()); 
      return convertView; 

     } 

     @Override 
     public boolean hasStableIds() { 
      return true; 
     } 

     @Override 
     public boolean isChildSelectable(int groupPosition, int childPosition) { 
      return true; 
     } 
    } 

PhrasesActivity



    public class PhrasesActivity extends Activity { 
     private PhraseAdapter phraseAdapter; 
     private PhraseDao dao; 

     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.phrases); 
      dao = new PhraseDao(); 


      final ExpandableListView mainListView = (ExpandableListView) findViewById(R.id.phrases_list); 
      phraseAdapter = new PhraseAdapter(this); 
      phraseAdapter.setData(dao.getPhrasesByCategoryId(1)); 
      mainListView.setAdapter(phraseAdapter); 

     } 
    } 

और सरल एक्सएमएल लेआउट

phrases.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 



<ExpandableListView 
    android:id="@+id/phrases_list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:groupIndicator="@null" 
    android:clickable="true" /> 

</LinearLayout> 

phrases_item.xml

012,351,
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:clickable="true" 
android:gravity="center_vertical|left" 
android:orientation="vertical" 
android:paddingBottom="0dip" 
android:paddingLeft="20dip" 
android:paddingRight="20dip" 
android:paddingTop="0dip" > 

<TextView 
    android:id="@+id/phrases_text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingBottom="0dip" 
    android:paddingLeft="0dip" 
    android:paddingRight="0dip" 
    android:paddingTop="0dip" > 
</TextView> 

</LinearLayout> 

phrases__extra_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:clickable="true" 
android:gravity="center_vertical|left" 
android:orientation="vertical" 
android:paddingBottom="0dip" 
android:paddingLeft="20dip" 
android:paddingRight="20dip" 
android:paddingTop="0dip" > 

<TextView 
    android:id="@+id/phrases_phonetix" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingBottom="0dip" 
    android:paddingLeft="0dip" 
    android:paddingRight="0dip" 
    android:paddingTop="0dip" > 
</TextView> 

<TextView 
    android:id="@+id/phrases_original" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingBottom="0dip" 
    android:paddingLeft="0dip" 
    android:paddingRight="0dip" 
    android:paddingTop="0dip" > 
</TextView> 

</LinearLayout> 

धन्यवाद

उत्तर

0
public int getChildrenCount(int groupPosition) { 
return 1; 
} 

इस बच्चे के रूप में देता है 1। यह एक समस्या हो सकती है। इसके बजाय बाल तत्वों की संख्या

+0

सभी उपन्यासकारों में हमेशा एक रिकॉर्ड होता है, डेटा एक ही सरणी सूची से आता है – PulsAm

6

हाय, मुझे लगता है कि नीचे कोड आपको मदद करता है। जो सूची दृश्य को पतन से रोकता है। अपने expandablelist ध्यान में रखते हुए कोड ऊपर

int count = exadapter.getGroupCount(); 

    for (int i = 0; i < count; i++) 
    { 
     expListView.expandGroup(i); 
    } 

उपयोग आपकी समस्या

1

का समाधान सभी समूहों डिफ़ॉल्ट रूप से रेखा से नीचे जोड़ने के विस्तार करने के लिए यह।

((ExpandableListView) parent).expandGroup(groupPosition); 

आपके getGroupView() विधि में।

यह खंड if (convertView == null) के भीतर किया जाना है या आप दृश्य को ध्वस्त करने में सक्षम नहीं होंगे।

@Override 
    public View getGroupView(int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) 
    { 
     final ViewHolder holder; 

     if (convertView == null) 
     { 
      ((ExpandableListView) parent).expandGroup(groupPosition); 

      convertView = inflater.inflate(R.layout.phrases_item, null); 
      holder = new ViewHolder(); 
      holder.name = (TextView) convertView.findViewById(R.id.phrases_text); 
      convertView.setTag(holder); 
      convertView.setClickable(true); 
     } 
     else 
     { 
      holder = (ViewHolder) convertView.getTag(); 
     } 
     holder.name.setText(data.get(groupPosition).getName()); 
     return convertView; 
    } 
संबंधित मुद्दे