我怎样才能从值复选框机器人 [英] How can i get values from checkbox in android

查看:98
本文介绍了我怎样才能从值复选框机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在checkbox.But我只拿到了一些字母数字numbers.How我可以从复选框选中项目的名称选择的项目的名称

 公开查看getView(INT位置,查看convertView,ViewGroup中父){
        查看查看= NULL;
        如果(convertView == NULL){
            LayoutInflater充气= context.getLayoutInflater();
            鉴于= inflator.inflate(R.layout.customlistlayout,NULL);
            最后ViewHolder viewHolder =新ViewHolder();
            viewHolder.text =(TextView中)view.findViewById(R.id.label);
            viewHolder.checkbox =(复选框)view.findViewById(R.id.check);
            viewHolder.checkbox
                    .setOnCheckedChangeListener(新CompoundButton.OnCheckedChangeListener(){

                        @覆盖
                        公共无效onCheckedChanged(CompoundButton buttonView,
                                布尔器isChecked){
                            模型元素=(模型)viewHolder.checkbox
                                    .getTag();

                            element.setSelected(buttonView.isChecked());


    在这里输入code

              //System.out.println(itemname);
                        }
                    });
            view.setTag(viewHolder);
            viewHolder.checkbox.setTag(list.get(位置));
        } 其他 {
            鉴于= convertView;
            ((ViewHolder)view.getTag())checkbox.setTag(list.get(位置))。
        }
        ViewHolder支架=(ViewHolder)view.getTag();
        holder.text.setText(list.get(位置).getName());
        holder.checkbox.setChecked(list.get(位置).isSelected());
        返回查看;
    }
 

解决方案

试试这个示例code ..落实到你的code

 公共类行星延伸活动{
    私人的ListView mainListView;
  私人星球[]行星;
  私人ArrayAdapter<星球> listAdapter;

    / **第一次创建活动时调用。 * /
    @覆盖
  公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.listview);

    //找到的ListView资源。
    mainListView =(ListView控件)findViewById(R.id.mainListView);

    //当项目被窃听,切换选中的复选框和行星的性质。
    mainListView.setOnItemClickListener(新AdapterView.OnItemClickListener(){
      @覆盖
      公共无效onItemClick(适配器视图<>父,查看项目,
                               INT位置,长的id){
        行星地球= listAdapter.getItem(位置);
        planet.toggleChecked();
        PlanetViewHolder viewHolder =(PlanetViewHolder)item.getTag();
        viewHolder.getCheckBox()setChecked(planet.isChecked())。
      }
    });


    //创建并填充行星。
    行星=(行星[])getLastNonConfigurationInstance();
    如果(行星== NULL){
      行星=新行星[] {
          新行星(水星),
          新行星(金星),
          新行星(大地),
          新行星(火星),
          新行星(朱庇特),
          新行星(土星),
          新行星(天王星),
          新行星(海王星),
          新行星(谷神星),
          新行星(冥王星),
          新行星(妊神星),
          新行星(鸟神),
          新行星(厄里斯)
      };
    }
    ArrayList的<星球> planetList =新的ArrayList<星球>();
    planetList.addAll(Arrays.asList(行星));

    //设置我们的自定义数组适配器作为ListView的适配器。
    listAdapter =新PlanetArrayAdapter(这一点,planetList);
    mainListView.setAdapter(listAdapter);
  }

  / **存放星球的数据。 * /
  私有静态类行星{
    私人字符串名称=;
    私人布尔查= FALSE;
    //公共行星(){}
    公共星球(字符串名称){
      this.name =名称;
    }
    / *公共行星(字符串名称,布尔检查){
      this.name =名称;
      this.checked =检查;
    } * /
    公共字符串的getName(){
      返回名称;
    }
    / *公共无效setname可以(字符串名称){
      this.name =名称;
    } * /
    公共布尔器isChecked(){
      返回检查;
    }
    公共无效setChecked(布尔检查){
      this.checked =检查;
    }
    公共字符串的toString(){
      返回名称;
    }
    公共无效toggleChecked(){
      !检查=检查;
    }
  }

  / **存放子视图一行。 * /
  私有静态类PlanetViewHolder {
    私人复选框复选框;
    私人的TextView TextView的;
    //公共PlanetViewHolder(){}
    公共PlanetViewHolder(TextView的TextView的,复选框复选框){
      this.checkBox =复选框;
      this.textView = TextView的;
    }
    公开复选框getCheckBox(){
      返回复选框;
    }
   / *公共无效setCheckBox(复选框复选框){
      this.checkBox =复选框;
    } * /
    公众的TextView getTextView(){
      返回的TextView;
    }
    / *公共无效setTextView(TextView中的TextView){
      this.textView = TextView的;
    } * /
  }

  / **定义适配器,用于显示行星对象的数组。 * /
  私有静态类PlanetArrayAdapter扩展ArrayAdapter<星球> {

    私人LayoutInflater充气;

    公共PlanetArrayAdapter(上下文的背景下,名单,其中,行星> planetList){
      超(背景下,R.layout.simplerow,R.id.rowTextView,planetList);
      //缓存的LayoutInflate避免询问,每次一个新的。
      充气= LayoutInflater.from(上下文);
    }
    @覆盖
    公共查看getView(INT位置,查看convertView,ViewGroup中父){
      //星球显示
      行星地球=(星球)this.getItem(位置);
      复选框复选框;
      的TextView TextView的;

      如果(convertView == NULL){
        convertView = inflater.inflate(R.layout.simplerow,NULL);

        TextView的=(的TextView)convertView.findViewById(R.id.rowTextView);
        复选框=(复选框)convertView.findViewById(R.id.C​​heckBox01);
        convertView.setTag(新PlanetViewHolder(TextView的,多选));
        checkBox.setOnClickListener(新View.OnClickListener(){
          公共无效的onClick(视图v){

            复选框CB =(复选框)V;
            行星地球=(星球)cb.getTag();
            planet.setChecked(cb.isChecked());

            如果(cb.isChecked()){
                字符串s = planet.getName();
                的System.out.println(多个);
            }

          }
        });
      }
     其他 {
        PlanetViewHolder viewHolder =(PlanetViewHolder)convertView.getTag();
        复选框= viewHolder.getCheckBox();
        的TextView = viewHolder.getTextView();
      }
      checkBox.setTag(行星);
      checkBox.setChecked(planet.isChecked());
      textView.setText(planet.getName());
      返回convertView;
    }
  }
  公共对象onRetainNonConfigurationInstance(){
    返回的行星;
  }
}
 

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

解决方案

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

这篇关于我怎样才能从值复选框机器人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆