Я пытался с двух дней решить эту проблему. Я видел много вопросов, связанных с этой проблемой. Но они не работали для меня.
У меня есть обычай ListView
. В каждый ряд входит один ImageView
, два TextView
и один ToggleButton
. Все эти грузы прекрасны. Когда я меняю состояние ToggleButton
на true
, тогда, когда я прокручиваю вниз и снова прокручиваю вверх, тогда ToggleButton
потеряет состояние. Это снова идет false
.Android - ToggleButton потеряет состояние после прокрутки ListView
Вот мои ArrayAdapter
private class MyAdapter extends ArrayAdapter<String> {
public MyAdapter(Context context, int resource, int textViewResourceId,
String[] strings) {
super(context, resource, textViewResourceId, strings);
// TODO Auto-generated constructor stub
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.friends_list_item_layout, parent, false);
RoundedImageView friendThumb = (RoundedImageView) row.findViewById(R.id.friendDp);
TextView friendName = (TextView) row.findViewById(R.id.friendName);
TextView friendNumber = (TextView) row.findViewById(R.id.friendNumber);
ToggleButton shareToggle = (ToggleButton) row.findViewById(R.id.shareLocatioToggle);
friendName.setText(myItems[position]);
friendNumber.setText("8888888888");
//friendThumb.setImageResource(R.drawable.friend_dp_thumb);
shareToggle.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
if (arg1) {
Toast.makeText(getApplicationContext(), "Shared with "+myItems[position], Toast.LENGTH_SHORT).show();
}
}
});
shareToggle.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Share your location", Toast.LENGTH_SHORT).show();
return false;
}
});
return row;
}
}
Благодаря
вы должны явно установить тумблер состояние на вашем 'GetView()', на основе текущего элемента, так же, как вы установите текст для 'TextView' – hidro
, но как это сделать в коде? Я смущен –
Возможный дубликат [Проблема с выбором панели выбора хоста] (http://stackoverflow.com/questions/26886799/issue-with-viewholder-selection) – Sufian