2012-04-03 30 views
8

Tôi muốn lấy tên của mục được chọn trong hộp kiểm.Nhưng tôi chỉ nhận được một số chữ số. Làm cách nào tôi có thể lấy tên của mục đã chọn từ hộp kiểmLàm cách nào tôi có thể lấy giá trị từ hộp kiểm trong android

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

Trả lời

2

Hãy thử mẫu mã này .. Thực hiện mã của bạn

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

tôi có một cái gì đó như thế này:

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

nếu bạn w kiến để biết hộp kiểm nào đã được (un) kiểm tra bạn cũng có thể đăng ký một thể hiện người nghe mới cho mỗi hộp kiểm.

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

Hãy thử mã này:

String str = yourCheckbox.getText(); 
1

Set tag cho checkbox như tên mà bạn đang đưa ra để Checkbox cũng thiết lập nó để gắn thẻ cho hộp kiểm mà sau đó bạn có thể truy cập vào tab trong setOnClickListener bạn

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()); 
} 
}); 
Các vấn đề liên quan