2012-04-03 8 views
8

quiero conseguir el nombre del elemento seleccionado en el checkbox.But tengo sólo algunos numbers.How alfanumérica puedo obtener el nombre del elemento seleccionado de casilla¿Cómo puedo obtener los valores de casilla de verificación en el androide

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; 
    } 

Respuesta

2

Prueba este código de ejemplo .. Implementar a su código

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 ; 
    } 
} 
4

que tiene algo como esto:

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 
     { 

     } 
    } 
}); 
-1

si w Para saber qué casilla de verificación ha sido (no) marcada, también puede registrar una nueva instancia de escucha para cada casilla de verificación.

CheckBox one = (CheckBox)findViewById(R.id.checkBox1); 
one.setOnClickListener(new OnClickListener() 
{ 

    @Override 
    public void onClick(View v) 
    { 
     Log.d(TAG,"I am checkbox 1!"); 
    } 
    }); 

    CheckBox two = (CheckBox)findViewById(R.id.checkBox2); 
two.setOnClickListener(new OnClickListener() 
{ 

    @Override 
    public void onClick(View v) 
    { 
     Log.d(TAG,"I am checkbox 2!"); 
    } 
}); 
0

Prueba este código: Etiqueta

String str = yourCheckbox.getText(); 
1

Conjunto de casilla similares al nombre que está dando a Casilla también configurarlo para etiquetar para esa casilla a continuación, se puede acceder a la pestaña en su setOnClickListener

viewHolder.checkbox.setTag("Write here name"); 
viewHolder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { 
    Model element = (Model) viewHolder.checkbox.getTag(); 
    element.setSelected(buttonView.isChecked()); 
    Log.v("Checked Name",buttonview.getTag().toString()); 
} 
}); 
Cuestiones relacionadas