listview with checkbox android -


to app need list checkboxex, clicking on text causes new intent clicking on checkbox causes saving of checkbox's value. not sure if problem clear here example:

i got list ( '_' checkboxes):

  • _ valuea
  • _ valueb
  • _ valuec

let's click on checkbox's placed next , c:

  • x valuea
  • _ valueb
  • x valuec

let's click on 'valuea' textview. new intent should start , vector [valuea, valuec] should saved , send next intent.

for tests create list each item linearview textview , checkbox. created 2 methods: onclick_textview , onclick_checkbox. in methods , in 'onlistitemclick' show toasts test 1 executed. 1 works in onclick_checkbox. not know start task. show me hints? useful methods, proper docs sites, algorithm's draft maybe?

please refer below code:

states.java

public class states {  string code = null; string name = null; boolean selected = false;  public states(string code, string name, boolean selected) {     super();     this.code = code;     this.name = name;     this.selected = selected; }  public string getcode() {     return code; }  public void setcode(string code) {     this.code = code; }  public string getname() {     return name; }  public void setname(string name) {     this.name = name; }  public boolean isselected() {     return selected; }  public void setselected(boolean selected) {     this.selected = selected; }  } 

mainactivity.java file

public class mainactivity extends activity {  mycustomadapter dataadapter = null;  @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);      // generate list view arraylist     displaylistview();      checkbuttonclick();  }  private void displaylistview() {      // array list of countries     arraylist<states> statelist = new arraylist<states>();      states _states = new states("91", "india", false);     statelist.add(_states);     _states = new states("61", "australia", true);     statelist.add(_states);     _states = new states("55", "brazil", false);     statelist.add(_states);     _states = new states("86", "china", true);     statelist.add(_states);     _states = new states("49", "germany", true);     statelist.add(_states);     _states = new states("36", "hungary", false);     statelist.add(_states);     _states = new states("39", "italy", false);     statelist.add(_states);     _states = new states("1", "us", false);     statelist.add(_states);     _states = new states("44", "uk", false);     statelist.add(_states);      // create arrayadaptar string array     dataadapter = new mycustomadapter(this, r.layout.state_info, statelist);     listview listview = (listview) findviewbyid(r.id.listview1);     // assign adapter listview     listview.setadapter(dataadapter);      listview.setonitemclicklistener(new onitemclicklistener() {          public void onitemclick(adapterview<?> parent, view view,                 int position, long id) {             // when clicked, show toast textview text             states state = (states) parent.getitematposition(position);             toast.maketext(getapplicationcontext(),                     "clicked on : " + state.getname(), toast.length_long)                     .show();         }     }); }  private class mycustomadapter extends arrayadapter<states> {      private arraylist<states> statelist;      public mycustomadapter(context context, int textviewresourceid,      arraylist<states> statelist) {         super(context, textviewresourceid, statelist);         this.statelist = new arraylist<states>();         this.statelist.addall(statelist);     }      private class viewholder {         textview code;         checkbox name;     }      @override     public view getview(int position, view convertview, viewgroup parent) {          viewholder holder = null;          log.v("convertview", string.valueof(position));          if (convertview == null) {              layoutinflater vi = (layoutinflater) getsystemservice(context.layout_inflater_service);              convertview = vi.inflate(r.layout.state_info, null);              holder = new viewholder();             holder.code = (textview) convertview.findviewbyid(r.id.code);             holder.name = (checkbox) convertview                     .findviewbyid(r.id.checkbox1);              convertview.settag(holder);              holder.name.setonclicklistener(new view.onclicklistener() {                 public void onclick(view v) {                     checkbox cb = (checkbox) v;                     states _state = (states) cb.gettag();                      toast.maketext(                             getapplicationcontext(),                             "checkbox: " + cb.gettext() + " -> "                                     + cb.ischecked(), toast.length_long)                             .show();                      _state.setselected(cb.ischecked());                 }             });          } else {             holder = (viewholder) convertview.gettag();         }          states state = statelist.get(position);          holder.code.settext(" (" + state.getcode() + ")");         holder.name.settext(state.getname());         holder.name.setchecked(state.isselected());          holder.name.settag(state);          return convertview;     }  }  private void checkbuttonclick() {      button mybutton = (button) findviewbyid(r.id.findselected);      mybutton.setonclicklistener(new onclicklistener() {          @override         public void onclick(view v) {              stringbuffer responsetext = new stringbuffer();             responsetext.append("selected countries are...\n");              arraylist<states> statelist = dataadapter.statelist;              (int = 0; < statelist.size(); i++) {                 states state = statelist.get(i);                  if (state.isselected()) {                     responsetext.append("\n" + state.getname());                 }             }              toast.maketext(getapplicationcontext(), responsetext,                     toast.length_long).show();         }     }); }  } 

activity_main.xml file

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffeeeeee" android:gravity="center" android:orientation="vertical" >  <textview     android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:padding="10dp"     android:text="country codes"     android:textsize="20sp" />  <button     android:id="@+id/findselected"     android:layout_width="match_parent"     android:layout_height="wrap_content"     android:text="get selected items" />  <listview     android:id="@+id/listview1"     android:layout_width="fill_parent"     android:layout_height="fill_parent" />  </linearlayout> 

state_info.xml file

 <?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="6dip" >  <checkbox     android:id="@+id/checkbox1"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_alignparentleft="true"     android:focusable="false"     android:focusableintouchmode="false"     android:text="checkbox"     android:textcolor="#b40404" />  <textview     android:id="@+id/code"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_alignbaseline="@id/checkbox1"     android:layout_alignbottom="@id/checkbox1"     android:layout_torightof="@id/checkbox1"     android:text="textview"     android:textcolor="#ff000000" />   </relativelayout> 

you can refer link http://developerandro.blogspot.com/2013/09/listview-with-checkbox-android-example.html


Comments

Popular posts from this blog

javascript - jquery or ashx not working -

opencv - DataType<cv::detail::deriv_type>::depth what is it used for -

python 3.x - Mapping specific letters onto a list of words -