2012-05-21 85 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);