【发布时间】:2017-12-10 06:04:57
【问题描述】:
我创建了自定义适配器和两个布局文件
第一个布局是包含ListView 和Button 的片段视图
第二个布局包含将在ListView中表示的项目
所以
我想当Checkbox 被选中时使Button 可见
所有这些操作都将在我的自定义适配器类中完成
这是我的自定义适配器
更新
public class LampControllerAdapter extends BaseAdapter {
Context mContext;
List<LampModel> mLampModels;
HashMap<Long,LampModel> selection;
Button sC;
public LampControllerAdapter(Context context, ArrayList<LampModel> lampList) {
mContext = context;
mLampModels = lampList;
selection = new HashMap<Long,LampModel>();
LayoutInflater in = (LayoutInflater) LayoutInflater.from(context);
View v = in.inflate(R.layout.fragment_home,null);
sC = (Button)v.findViewById(R.id.selection_control);
}
@Override
public int getCount() {
return mLampModels.size();
}
@Override
public Object getItem(int i) {
return mLampModels.get(i);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(final int i, View view, ViewGroup parent) {
ViewHolder holder;
final LampModel model = (LampModel) getItem(i);
if (view == null) {
// Inflating The Layout
LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
view = inflater.inflate(R.layout.lamp_controller_item, parent, false);
holder = new ViewHolder();
holder.name = (TextView) view.findViewById(R.id.lamp_item_name);
holder.description = (TextView) view.findViewById(R.id.lamp_item_description);
holder.select = (CheckBox) view.findViewById(R.id.lamp_item_select);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
holder.name.setText(model.getName());
holder.description.setText(model.getDescription());
holder.select.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(b){
selection.put(model.getId(),model);
}else {
selection.remove(model.getId());
}
if(selection.size() > 0){
Toast.makeText(mContext, "Not Empty", Toast.LENGTH_SHORT).show();
sC.setVisibility(View.GONE);
}else {
Toast.makeText(mContext, "Empty", Toast.LENGTH_SHORT).show();
}
}
});
return view;
}
class ViewHolder {
TextView name, description;
CheckBox select;
Switch aSwitch;
}
}
【问题讨论】:
-
复选框在哪里?
-
在将在列表视图中表示的布局中
-
使用接口回调
checkboxcheckedListener并实现动态可见性 -
您为实现这一目标做了哪些工作?在此处粘贴一些代码。
-
非常感谢@Bills :)