我尝试了很多次,但为什么我不能这样做,我不知道。在我声明可扩展列表视图后:
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);
但是我无法创造许多问题; 如果你帮助我,我会很开心。 感谢。
答案 0 :(得分:1)
除非您发布错误日志但尝试引用这些链接,否则我们无法找到错误:
Simple ExpandableListView Demo
Custom ExpandableListView on Android
希望这会对你有所帮助
答案 1 :(得分:0)
而不是像你一样设置这个列表适配器:
setListAdapter(mAdapter);
你应该这样设置:
listView.setAdapter(mAdapter);
答案 2 :(得分:0)
确定。谢谢guyss我处理我的问题,所有问题是不扩展ExpandableListActivity,只是Activity它是我的代码。现在我尝试学习如何在单击按钮时聚焦组。 这是代码。
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);
}
}; }