我使用textView创建了expandablelistview并切换了子组。 我想使用开关状态(开或关)来控制连接到ESP8266 WiFi模块的设备。 如何存储交换机数据以便在其他地方使用?
适配器java文件:
public class AdpMain extends BaseExpandableListAdapter {
private Context context;
private ArrayList<String> arrayGroup;
private HashMap<String, ArrayList<String>> arrayChild;
public AdpMain(Context context, ArrayList<String> arrayGroup, HashMap<String, ArrayList<String>> arrayChild)
{
super();
this.context = context;
this.arrayGroup = arrayGroup;
this.arrayChild = arrayChild;
}
...
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent)
{
String childName = arrayChild.get(arrayGroup.get(groupPosition)).get(childPosition);
View v = convertView;
if(v == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = (RelativeLayout)inflater.inflate(R.layout.activity_listview_child, null);
}
TextView textChild = (TextView)v.findViewById(R.id.textChild);
textChild.setText(childName);
return v;
}
}
答案 0 :(得分:1)
您必须先从switch
getChildView()
文件中activity_listview_child
注册xml
个ID。假设switch
文件中的xml
个ID为switchChild
,请使用以下代码:
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent)
{
ChildHolder childHolder;
String childName = arrayChild.get(arrayGroup.get(groupPosition)).get(childPosition);
if(convertView == null)
{
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.activity_listview_child, null);
childHolder = new ChildHolder();
childHolder.textChild = (TextView)convertCiew..findViewById(R.id.textChild);
childHolder.switchChild = (Switch)convertCiew..findViewById(R.id.switchChild);
converView.setTag(childHolder)
}
else
{
childHolder = (ChildHolder)convertView.getTag();
}
childHolder.textChild.setText(childName);
childHolder.switchChild.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
//whatever you want do for switch code here
mListener.OnSwitchClick(groupPosition, childPosition,childHolder.switchChild.isChecked());
}
});
return convertView;
}
private static class ChildHolder
{
TextView textChild;
Switch switchChild;
}
希望它可以帮到你