在我的应用程序中,我有一个expandablelistview,其中包含childlist中的复选框。 可扩展列表视图的所有数据都是从webservice获取的。
现在我想获取特定子raw的数据,其中选中了复选框。此外,我还必须执行多项选择操作。 我想,当单击复选框时,所选原始数据将存储在数组中。
这是我的适配器类:
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent)
{
ServiceChildList child = (ServiceChildList) getChild(groupPosition,
childPosition);
if (convertView == null)
{
LayoutInflater infalInflater = (LayoutInflater) context
.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.item_row, null);
}
TextView one = (TextView) convertView.findViewById(R.id.Subservicename);
one.setText(child.getvName().toString());
TextView two = (TextView) convertView.findViewById(R.id.Subservicetime);
two.setText(child.getvDuration().toString());
TextView three = (TextView) convertView.findViewById(R.id.Subserviceprice);
three.setText("$" +child.getfPrice().toString()+".00");
TextView four= (TextView)convertView.findViewById(R.id.Subserviceid);
four.setText(child.getiSubServiceId().toString());
CheckBox check=(CheckBox)convertView.findViewById(R.id.sub_check);
check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
CheckBox cb = (CheckBox) buttonView ;
ServiceChildList cList = (ServiceChildList) cb.getTag();
cList.setChecked( cb.isChecked() );
}
});
check.setTag( child );
// Display planet data
check.setChecked( child.isChecked() );
return convertView;
}
这是我的活动课程:
ExpandList.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id)
{
ArrayList<ServiceChildList> ch_list = ExpListItems.get(groupPosition).getSub();
int len = ExpandList.getChildCount();
SparseBooleanArray checked = ExpandList.getCheckedItemPositions();
for (int i = 0; i < len; i++)
if (checked.get(i)) {
String item = cont_list.get(i);
/* do whatever you want with the checked item */
}
String child_name = ch_list.get(childPosition).getvName();
Log.d("dsijirji",child_name);
String child_id = ch_list.get(childPosition).getiSubServiceId();
Log.d("dsijirji",child_id);
showToastMsg( child_id+"\n" + child_name);
Toast.makeText(getApplicationContext(), child_name, Toast.LENGTH_SHORT ).show();
Toast.makeText(getApplicationContext(), String.valueOf(groupPosition), Toast.LENGTH_SHORT ).show();
return false;
}
});
告诉我哪里弄错了。帮我这个.. 提前谢谢。