我如何从android中的checkbox获取值

我想获取在checkbox中select的项目的名称,但我只有一些字母数字numbers.How我可以从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; } 

Solutions Collecting From Web of "我如何从android中的checkbox获取值"

试试这个示例代码..实现你的代码

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

我有这样的东西:

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

为checkbox设置标签,就像你给的名称checkbox也将其设置为该checkbox的标记,然后你可以访问你的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()); } }); 

试试这个代码:

 String str = yourCheckbox.getText(); 

如果你想知道哪个checkbox已经被(un)检查过了,你可以为每个checkbox注册一个新的监听器实例。

  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!"); } });