I am developing an app with check box and i want to select all checkboxes in listview with one checkbox and also if user want to select any check box (i.e to select all check box or any of the check box select in list)both operations i want to do.How do i do this?
Following is my code,suggest me!!
//ListActivity
public class ListActivity extends AppCompatActivity {
ListView mListView;
Point p;
TextView txt;
ImageView img;
CheckBox chkboxAll;
private int[] startImages = new int[]{
R.drawable.areaname,R.drawable.email,R.drawable.user};
private String[] mColorNames = new String[]{
"1", "2", "3"};
private List<ListModel> listModelList = new ArrayList<>();
private String TAG = "Lokesh";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_activity1);
mListView = (ListView) findViewById(R.id.listview);
chkboxAll = (CheckBox) findViewById(R.id.checkBox);
loadListWithImages();
final ListAdapterN adapter = new ListAdapterN(listModelList,this);
mListView.setAdapter(adapter);
Log.d(TAG, "onCreate: list"+listModelList.size());
}
private void loadListWithImages() {
for (int i = 0; i < startImages.length; i++) {
ListModel listModel = new ListModel();
listModel.setCount(0);
listModel.setImage(startImages[i]);
listModel.setName(mColorNames[i]);
listModelList.add(listModel);
}
}
}
//Adapter
public class ListAdapterN extends BaseAdapter implements android.widget.ListAdapter {
TextView txt;
ImageView img;
private PopupWindow window;
private List<ListModel> listModelList;
private Context mContext;
private LayoutInflater inflater;
private String TAG = "LokeshSA";
private String[] mColorNames = new String[]{
"1", "2", "3"};
private String[] listitems = new String[]{"One", "Two", "Three"};
public ListAdapterN(List<ListModel> listModelList, Context mContext) {
this.listModelList = listModelList;
this.mContext = mContext;
inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return listModelList.size();
}
@Override
public Object getItem(int position) {
return listModelList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// ViewHolder holder = null;
final ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.single_list_items, null);
holder = new ViewHolder();
//checkbox
/*
holder.checkbox = (CheckBox) convertView.findViewById(R.id.listview_cb);
holder.checkbox.setChecked(listModelList.get(position).isChecked());
holder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
ListModel listModel = listModelList.get(position);
listModel.setChecked(isChecked);
listModelList.remove(position);
listModelList.add(position,listModel);
}
});
convertView.setTag(holder); // */
holder.checkbox = (CheckBox) convertView.findViewById(R.id.listview_cb);
holder.checkbox
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
ListModel element = (ListModel) holder.checkbox
.getTag();
element.setSelected(buttonView.isChecked());
}
}); // working
convertView.setTag(holder);
holder.checkbox.setTag(listModelList.get(position));
//spinner
holder.spinner = (Spinner) convertView.findViewById(R.id.listview_spinner);
ArrayAdapter<String> startColorsAdapter = new ArrayAdapter<String>(mContext,
android.R.layout.simple_list_item_1, mColorNames);
holder.spinner.setAdapter(startColorsAdapter);
holder.spinner.setSelection(listModelList.get(position).getCount());
holder.spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position2, long id) {
ListModel starModel = listModelList.get(position);
starModel.setCount(position2);
listModelList.remove(position);
listModelList.add(position, starModel);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// initialize image resource
holder.iamge = (ImageView) convertView.findViewById(R.id.listview_imgs);
// setting image
holder.iamge.setImageResource(listModelList.get(position).getImage());
//textview resource
holder.textView = (TextView) convertView.findViewById(R.id.listview_tv);
holder.textView.setText(listitems[position]);
// holder.textView.setText(listModelList.get(position).getName());
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ShowPopupWindow();
}
});
return convertView;
}
private class ViewHolder {
private Spinner spinner;
private ImageView iamge;
private TextView textView;
private CheckBox checkbox;
}
@Override
public int getViewTypeCount() {
return getCount();
}
@Override
public int getItemViewType(int position) {
return position;
}
}
Aucun commentaire:
Enregistrer un commentaire