J'ai créé adaptateur personnalisé et deux fichiers mises en page la première mise en page est vue fragment qui contient ListView
et Button
Android: Faites quelque chose lorsque la case est cochée
la deuxième mise en page contient des éléments qui seront représentés dans le ListView
Alors
Je veux quand le Checkbox
est Cheque rendre visible Button
Toutes ces opérations seront faites dans ma classe personnalisée adaptateur
Ceci est l'adaptateur MyCustom
Mise à jour
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;
}
}
Où est la case à cocher? – Bills
Dans la mise en page qui sera représentée dans la vue de liste –
, utilisez l'interface de rappel sur 'checkbox'' checkListener' et faites une visibilité dynamique –