2012-05-21 54 views
1

我尝试了很多次,但为什么我不能这样做我不知道。我声明可扩展列表视图这个:如何在另一个线性布局中以线性布局创建可扩展列表视图

listView =(ExpandableListView)findViewById(R.id.expandableListView1); 

而且我创建我的适配器就像;

public class MyExpandableListAdapter extends BaseExpandableListAdapter { 
     // Sample data set. children[i] contains the children (String[]) for groups[i]. 
     private String[] groups = { "People Names", "Dog Names", "Cat Names", "Fish Names" }; 
     private String[][] children = { 
       { "Arnold", "Barry", "Chuck", "David" }, 
       { "Ace", "Bandit", "Cha-Cha", "Deuce" }, 
       { "Fluffy", "Snuggles" }, 
       { "Goldy", "Bubbles" } 
     }; 

     public Object getChild(int groupPosition, int childPosition) { 
      return children[groupPosition][childPosition]; 
     } 

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

     public int getChildrenCount(int groupPosition) { 
      return children[groupPosition].length; 
     } 

     public TextView getGenericView() { 
      // Layout parameters for the ExpandableListView 
      AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
        ViewGroup.LayoutParams.FILL_PARENT, 64); 

      TextView textView = new TextView(ExpandableList1.this); 
      textView.setLayoutParams(lp); 
      // Center the text vertically 
      textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); 
      // Set the text starting position 
      textView.setPadding(36, 0, 0, 0); 
      return textView; 
     } 

     public View getChildView(int groupPosition, int childPosition, boolean isLastChild, 
       View convertView, ViewGroup parent) { 
      TextView textView = getGenericView(); 
      textView.setText(getChild(groupPosition, childPosition).toString()); 
      return textView; 
     } 

     public Object getGroup(int groupPosition) { 
      return groups[groupPosition]; 
     } 

     public int getGroupCount() { 
      return groups.length; 
     } 

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

     public View getGroupView(int groupPosition, boolean isExpanded, View convertView, 
       ViewGroup parent) { 
      TextView textView = getGenericView(); 
      textView.setText(getGroup(groupPosition).toString()); 
      return textView; 
     } 

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

     public boolean hasStableIds() { 
      return true; 
     } 

    } 

然后我将我的适配器设置为listView。

mAdapter = new MyExpandableListAdapter(); 
     setListAdapter(mAdapter); 

但是有太多的问题我不能创建;我会很高兴。 谢谢。

+1

在此处添加错误日志。 – Sajmon

回答

0

确定。感谢guyss我处理我的问题,所有问题是不扩展ExpandableListActivity,只是活动它是我的代码。现在我试着学习如何在单击按钮时集中组。 这里是代码。

public class expandXml extends Activity{ 

ExpandableListView listView; 
ExpandableListAdapter adapter; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.deneme2); 


    listView =(ExpandableListView)findViewById(R.id.expandableListView1); 
    listView.setFocusable(true); 
    adapter = new ExpandableListAdapter() { 


     private String[] groups = { "People Names", "Dog Names", "Cat Names", "Fish Names" }; 
     private String[][] children = { 
       { "Arnold", "Barry", "Chuck", "David" }, 
       { "Ace", "Bandit", "Cha-Cha", "Deuce" }, 
       { "Fluffy", "Snuggles" }, 
       { "Goldy", "Bubbles" } 
     }; 
     public void unregisterDataSetObserver(DataSetObserver observer) { 
      // TODO Auto-generated method stub 

     } 

     public void registerDataSetObserver(DataSetObserver observer) { 
      // TODO Auto-generated method stub 

     } 

     public void onGroupExpanded(int groupPosition) { 
      // TODO Auto-generated method stub 

     } 

     public void onGroupCollapsed(int groupPosition) { 
      // TODO Auto-generated method stub 

     } 

     public boolean isEmpty() { 
      // TODO Auto-generated method stub 
      return false; 
     } 

     public boolean isChildSelectable(int groupPosition, int childPosition) { 
      // TODO Auto-generated method stub 
      return true; 
     } 

     public boolean hasStableIds() { 
      // TODO Auto-generated method stub 
      return true; 
     } 

     public View getGroupView(int groupPosition, boolean isExpanded, 
       View convertView, ViewGroup parent) { 
      TextView textView = getGenericView(); 
       textView.setText(getGroup(groupPosition).toString()); 
       return textView; 
     } 

     public long getGroupId(int groupPosition) { 
      // TODO Auto-generated method stub 
      return groupPosition; 
     } 

     public int getGroupCount() { 
      // TODO Auto-generated method stub 
      return groups.length; 
     } 

     public Object getGroup(int groupPosition) { 
      // TODO Auto-generated method stub 
      return groups[groupPosition]; 
     } 

     public long getCombinedGroupId(long groupId) { 
      // TODO Auto-generated method stub 
      return 0; 
     } 

     public long getCombinedChildId(long groupId, long childId) { 
      // TODO Auto-generated method stub 
      return 0; 
     } 

     public int getChildrenCount(int groupPosition) { 
      // TODO Auto-generated method stub 
      return children[groupPosition].length; 
     } 

     public View getChildView(int groupPosition, int childPosition, 
       boolean isLastChild, View convertView, ViewGroup parent) { 
      TextView textView = getGenericView(); 
       textView.setText(getChild(groupPosition, childPosition).toString()); 
       return textView; 
     } 

     public long getChildId(int groupPosition, int childPosition) { 
      // TODO Auto-generated method stub 
      return childPosition; 
     } 

     public Object getChild(int groupPosition, int childPosition) { 
      // TODO Auto-generated method stub 
      return children[groupPosition][childPosition]; 
     } 

     public boolean areAllItemsEnabled() { 
      // TODO Auto-generated method stub 
      return false; 
     } 

     public TextView getGenericView() { 
      // Layout parameters for the ExpandableListView 
      AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
        ViewGroup.LayoutParams.FILL_PARENT, 64); 

      TextView textView = new TextView(expandXml.this); 
      textView.setLayoutParams(lp); 
      // Center the text vertically 
      textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); 
      // Set the text starting position 
      textView.setPadding(36, 0, 0, 0); 

      return textView; 
     } 

    }; 
    listView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 

     public boolean onChildClick(ExpandableListView parent, View v, 
       int groupPosition, int childPosition, long id) { 

      Object x =adapter.getChild(groupPosition, childPosition); 

      //Object o = this.getExpandableListAdapter().getChild(groupPosition, childPosition); 
      String key =x.toString(); 
      Toast.makeText(expandXml.this,"Secildi "+key ,Toast.LENGTH_LONG).show();  
      return true; 
     } 
    }); 
    Button butex = (Button)findViewById(R.id.button1); 
    butex.setOnClickListener(expandgroup); 



    listView.setAdapter(adapter); 

} 
private OnClickListener expandgroup = new OnClickListener() { 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     listView.expandGroup(3); 



    } 
}; } 
0

而不是设置这个名单适配器就像你的是:

setListAdapter(mAdapter); 

你应该设置这样的:

listView.setAdapter(mAdapter);