Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can i get values from checkbox in android

Tags:

android

i want to get the name of the item selected in the checkbox.But i got only some alphanumeric numbers.How can i obtain the name of the selected item from checkbox

public View getView(int position, View convertView, ViewGroup parent) {
        View view = null;
        if (convertView == null) {
            LayoutInflater inflator = context.getLayoutInflater();
            view = inflator.inflate(R.layout.customlistlayout, null);
            final ViewHolder viewHolder = new ViewHolder();
            viewHolder.text = (TextView) view.findViewById(R.id.label);
            viewHolder.checkbox = (CheckBox) view.findViewById(R.id.check);
            viewHolder.checkbox
                    .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                        @Override
                        public void onCheckedChanged(CompoundButton buttonView,
                                boolean isChecked) {
                            Model element = (Model) viewHolder.checkbox
                                    .getTag();  

                            element.setSelected(buttonView.isChecked());


    enter code here

              //System.out.println(itemname);
                        }
                    });
            view.setTag(viewHolder);
            viewHolder.checkbox.setTag(list.get(position));
        } else {
            view = convertView;
            ((ViewHolder) view.getTag()).checkbox.setTag(list.get(position));
        }
        ViewHolder holder = (ViewHolder) view.getTag();
        holder.text.setText(list.get(position).getName());
        holder.checkbox.setChecked(list.get(position).isSelected());
        return view;
    }
like image 357
Sanal Varghese Avatar asked Apr 03 '12 09:04

Sanal Varghese


People also ask

How to get CheckBox value in android java?

Use choice mode on a list. This list is in CHOICE_MODE_SINGLE mode, which means the items behave like checkboxes. Use choice mode on a list. This list is in CHOICE_MODE_MULTIPLE mode, which means the items behave like checkboxes.

How to get checked state of CheckBox android?

By default, the android CheckBox will be in the OFF (Unchecked) state. We can change the default state of CheckBox by using android:checked attribute. In case, if we want to change the state of CheckBox to ON (Checked), then we need to set android:checked = “true” in our XML layout file.

Which methods of CheckBox are used to get and set checked property in Android?

It has two states – checked or unchecked. public boolean isChecked(): If CheckBox is in checked state then return true otherwise false. public void setChecked(boolean status): It changes the state of the CheckBox.

Which property is used to select the CheckBox component in Android?

When the user selects a checkbox, the CheckBox object receives an on-click event. To define the click event handler for a checkbox, add the android:onClick attribute to the <CheckBox> element in your XML layout. The value for this attribute must be the name of the method you want to call in response to a click event.


2 Answers

I got something like this:

CheckBox not = (CheckBox)findViewById(R.id.checkBox1);
not.setChecked(my.notifications);
not.setOnClickListener(new OnClickListener() 
{

     @Override
     public void onClick(View v) 
     {
         if (((CheckBox) v).isChecked()) 
         {


         }
         else
         {

         }
     }
});
like image 104
goodm Avatar answered Oct 04 '22 21:10

goodm


Try this sample code.. Implement to your code

    public class Planets extends Activity {  
    private ListView mainListView ;
  private Planet[] planets ;
  private ArrayAdapter<Planet> listAdapter ;

    /** Called when the activity is first created. */
    @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview);

    // Find the ListView resource. 
    mainListView = (ListView) findViewById( R.id.mainListView );

    // When item is tapped, toggle checked properties of CheckBox and Planet.
    mainListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      @Override
      public void onItemClick( AdapterView<?> parent, View item, 
                               int position, long id) {
        Planet planet = listAdapter.getItem( position );
        planet.toggleChecked();
        PlanetViewHolder viewHolder = (PlanetViewHolder) item.getTag();
        viewHolder.getCheckBox().setChecked( planet.isChecked() );
      }
    });


    // Create and populate planets.
    planets = (Planet[]) getLastNonConfigurationInstance() ;
    if ( planets == null ) {
      planets = new Planet[] { 
          new Planet("Mercury"), 
          new Planet("Venus"), 
          new Planet("Earth"), 
          new Planet("Mars"), 
          new Planet("Jupiter"), 
          new Planet("Saturn"), 
          new Planet("Uranus"), 
          new Planet("Neptune"), 
          new Planet("Ceres"),
          new Planet("Pluto"), 
          new Planet("Haumea"), 
          new Planet("Makemake"),
          new Planet("Eris")
      };  
    }
    ArrayList<Planet> planetList = new ArrayList<Planet>();
    planetList.addAll( Arrays.asList(planets) );

    // Set our custom array adapter as the ListView's adapter.
    listAdapter = new PlanetArrayAdapter(this, planetList);
    mainListView.setAdapter( listAdapter );      
  }

  /** Holds planet data. */
  private static class Planet {
    private String name = "" ;
    private boolean checked = false ;
    //public Planet() {}
    public Planet( String name ) {
      this.name = name ;
    }
    /*public Planet( String name, boolean checked ) {
      this.name = name ;
      this.checked = checked ;
    }*/
    public String getName() {
      return name;
    }
    /*public void setName(String name) {
      this.name = name;
    }*/
    public boolean isChecked() {
      return checked;
    }
    public void setChecked(boolean checked) {
      this.checked = checked;
    }
    public String toString() {
      return name ; 
    }
    public void toggleChecked() {
      checked = !checked ;
    }
  }

  /** Holds child views for one row. */
  private static class PlanetViewHolder {
    private CheckBox checkBox ;
    private TextView textView ;
    //public PlanetViewHolder() {}
    public PlanetViewHolder( TextView textView, CheckBox checkBox ) {
      this.checkBox = checkBox ;
      this.textView = textView ;
    }
    public CheckBox getCheckBox() {
      return checkBox;
    }
   /* public void setCheckBox(CheckBox checkBox) {
      this.checkBox = checkBox;
    }*/
    public TextView getTextView() {
      return textView;
    }
    /*public void setTextView(TextView textView) {
      this.textView = textView;
    }  */  
  }

  /** Custom adapter for displaying an array of Planet objects. */
  private static class PlanetArrayAdapter extends ArrayAdapter<Planet> {

    private LayoutInflater inflater;

    public PlanetArrayAdapter( Context context, List<Planet> planetList ) {
      super( context, R.layout.simplerow, R.id.rowTextView, planetList );
      // Cache the LayoutInflate to avoid asking for a new one each time.
      inflater = LayoutInflater.from(context) ;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      // Planet to display
      Planet planet = (Planet) this.getItem( position );      
      CheckBox checkBox ; 
      TextView textView ;     

      if ( convertView == null ) {
        convertView = inflater.inflate(R.layout.simplerow, null);

        textView = (TextView) convertView.findViewById( R.id.rowTextView );
        checkBox = (CheckBox) convertView.findViewById( R.id.CheckBox01 );
        convertView.setTag( new PlanetViewHolder(textView,checkBox) );
        checkBox.setOnClickListener( new View.OnClickListener() {
          public void onClick(View v) {

            CheckBox cb = (CheckBox) v ;
            Planet planet = (Planet) cb.getTag();
            planet.setChecked( cb.isChecked() );

            if(cb.isChecked()){
                String s = planet.getName();
                System.out.println(s);
            }

          }
        });        
      }
     else {        
        PlanetViewHolder viewHolder = (PlanetViewHolder) convertView.getTag();
        checkBox = viewHolder.getCheckBox() ;
        textView = viewHolder.getTextView() ;
      }
      checkBox.setTag( planet ); 
      checkBox.setChecked( planet.isChecked() );
      textView.setText( planet.getName() );        
      return convertView;
    }
  }
  public Object onRetainNonConfigurationInstance() {
    return planets ;
  }
}
like image 20
wolverine Avatar answered Oct 04 '22 22:10

wolverine