Как изменить текст CheckBox в списке?

Я знаю, что это глупый вопрос, но я не могу это сделать. Я хочу изменить текст ChekcBox при щелчке. Он меняется по мере необходимости, но странно, когда я просматриваю список, этот текст присваивается другому флажку, присутствующему в списке. Такие элементы, как Listview, перезагружаются при каждом прокрутке. Ниже я попытался до сих пор.

public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); convertView = LayoutInflater.from(mContext).inflate( R.layout.row_photo, null); holder.textview = (TextView) convertView .findViewById(R.id.thumbImage); holder.checkbox = (CheckBox) convertView .findViewById(R.id.itemCheckBox); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.checkbox.setId(position); holder.textview.setId(position); holder.checkbox.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub cb = (CheckBox) v; id = cb.getId(); cb.setText("Hiii"); } }); holder.textview.setText(items.get(position)); holder.id = position; return convertView; } 

Пожалуйста, помогите мне в этом.

Ваш пользовательский адаптер должен реализовать CompoundButton.OnCheckedChangeListener

затем

  cb.setChecked(mCheckStates.get(position, false)); cb.setOnCheckedChangeListener(this); 

Затем установите флажок установленного состояния для установки текста.

  public boolean isChecked(int position) { return mCheckStates.get(position, false); } public void setChecked(int position, boolean isChecked) { mCheckStates.put(position, isChecked); } public void toggle(int position) { setChecked(position, !isChecked(position)); } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub if(isChecked) { buttonView.setText("Hello"); } else { buttonView.setText(""); } mCheckStates.put((Integer) buttonView.getTag(), isChecked); } 

пример

 public class MainActivity extends Activity implements AdapterView.OnItemClickListener { int count; private CheckBoxAdapter mCheckBoxAdapter; String[] GENRES = new String[] { "Action", "Adventure", "Animation", "Children", "Comedy", "Documentary", "Drama", "Foreign", "History", "Independent", "Romance", "Sci-Fi", "Television", "Thriller" }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ListView listView = (ListView) findViewById(R.id.lv); listView.setItemsCanFocus(false); listView.setTextFilterEnabled(true); listView.setOnItemClickListener(this); mCheckBoxAdapter = new CheckBoxAdapter(this, GENRES); listView.setAdapter(mCheckBoxAdapter); Button b= (Button) findViewById(R.id.button1); b.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub StringBuilder result = new StringBuilder(); for(int i=0;i 

Snap Shot. Когда вы установите флажок, установите этот текст, когда вы снимите отметку с установленного текста на ""

введите описание изображения здесь

Я вижу, что вы внедрили listView, поскольку он должен быть реализован – viewholder + convert view. Прямо сейчас все, что вам нужно сделать, это позвонить

 holder.checkbox.setText("Hello World!"); 

Все, что вам нужно сделать, чтобы решить вашу проблему, – это изменить текст каждого флажка из-за некоторых условий. Поэтому, если отмечено – задан текст «+» else «-». Измените его, как вам нравится, но вы должны изменить каждый текст флажка.

  • android: ViewPager и HorizontalScrollVIew
  • Узнайте, прокручивается ли ListView до конца?
  • Как я могу просмотреть перечисление Java из его значения String?
  • Как обновить список просмотров Android?
  • ASP.NET MVC - просмотр с несколькими моделями
  • Что такое строго типизированный вид в ASP.NET MVC
  • Отображение изображения Qt jpg
  • OnItemClickListener и OnClickListener не работают в ListView
  • Android: как установить событие onClick для кнопки в элементе списка в ListView
  • Android - динамически добавлять виды в представление
  • onMeasure пользовательский вид пояснения
  • Давайте будем гением компьютера.