我在ExpendableListView Adapter类中有两个数组,它们为我的组和子数据头提供了虚拟数据。第一个数组是一个常规数组,第二个数组是二维数组。如何动态地将数据添加到数组
public class ExpandableListViewAdapter extends BaseExpandableListAdapter {
String[] groupNames = {
"Fall 2016", "Winter 2017",
"Fall 2017", "Winter 2018",
"Fall 2018", "Winter 2019",
"Fall 2019", "Winter 2020"
};
String[][] childNames = {
{"JAVA101", "MATH101", "CHEM101"},{"JAVA201", "MATH201", "CHEM201"},
{"JAVA301", "MATH301", "CHEM301"},{"JAVA401", "MATH401", "CHEM401"},
{"JAVA501", "MATH501", "CHEM501"},{"JAVA601", "MATH601", "CHEM601"},
{"JAVA701", "MATH701", "CHEM701"},{"JAVA801", "MATH801", "CHEM801"}
};
而且根据需要,我已经实现了所有必需的方法,并将它们附加到我的数组中。
Context context;
public ExpandableListViewAdapter(Context context){
this.context = context;
}
@Override
public int getGroupCount() {
return groupNames.length;
}
@Override
public int getChildrenCount(int groupPosition) {
return childNames[groupPosition].length;
}
@Override
public Object getGroup(int groupPosition) {
return groupNames[groupPosition];
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return childNames[groupPosition][childPosition];
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View view, ViewGroup parent) {
TextView textView = new TextView(context);
textView.setText(groupNames[groupPosition]);
textView.setPadding(100,0,0,0);
textView.setTextColor(Color.BLACK);
textView.setTextSize(20);
return textView;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View view, ViewGroup parent) {
final TextView textView = new TextView(context);
textView.setText("Java" + groupNames[childPosition] + "01");
textView.setPadding(100,0,0,0);
textView.setTextColor(Color.BLACK);
textView.setTextSize(10);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, textView.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
return textView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}
一切工作正常。我想要做的是通过FAB点击动态地将数据添加到我的ExpandableListView。我主要关心的是,如果我需要在适配器内实现我的FAB按钮的onClick()
功能。
如何更换两个数组(即使是2D的)一个数组列表? –
编辑我的帖子用一个例子 – Denny
在像'getGroup的实施方法()','getGroupView()','getChildView()'有喜欢的错误如下: '@覆盖 公共对象getGroup(INT groupPosition) {group 0}返回groupNames [groupPosition]; }' 现在'groupNames'不承认'INT groupPosition' –