当我检查一个切换按钮第五切换按钮会自动检查在Android的列表视图
问题描述:
我有列表视图切换按钮。当我检查第一个切换按钮第五切换按钮会自动检查。当我检查第二切换按钮第七切换按钮得到检查。并且当我取消选中第五切换按钮时,它是空值烤面包。当我检查一个切换按钮第五切换按钮会自动检查在Android的列表视图
下面是我的代码
public class CustomUsersAdapter extends ArrayAdapter<User>
{
public CustomUsersAdapter(Context context, ArrayList<User> users)
{
super(context, 0, users);
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
//Get an instance of our cell holder
Holder holder;
holder = new Holder();
// Get the data item for this position
User user = getItem(position);
// Check if an existing view is being reused, otherwise inflate the view
if (convertView == null)
{
convertView = LayoutInflater.from(getContext()).inflate(R.layout.activity_main, parent, false);
// Lookup view for data population
holder.tvName = (TextView) convertView.findViewById(R.id.tvName);
holder.tvHome = (TextView) convertView.findViewById(R.id.tvHometown);
holder.tgbtn = (ToggleButton) convertView.findViewById(R.id.toggleButton1);
convertView.setTag(holder); //Add this
}
else
{
holder= (Holder) convertView.getTag();
}
holder.tvName.setText(user.name);
holder.tvHome.setText(user.hometown);
/** The clicked Item in the ListView */
RelativeLayout rLayout = (RelativeLayout) convertView;
/** Getting the toggle button corresponding to the clicked item */
final ToggleButton tbt = (ToggleButton) rLayout.getChildAt(2);
tbt.setOnClickListener(new OnClickListener() {
String homet;
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (tbt.isChecked()) {
//tbt.setChecked(true);
ViewGroup parent = (ViewGroup) v.getParent();
TextView tvName = (TextView) parent.findViewById(R.id.tvName);
homet=tvName.getText().toString();
Toast.makeText(getContext(),homet+"Blocked", Toast.LENGTH_SHORT).show();
} else {
tbt.setChecked(false);
Toast.makeText(getContext(),homet+ "Unblocked", Toast.LENGTH_SHORT).show();
}
}
});
// Return the completed view to render on screen
return convertView;
}
//this holder class will be filled from the layout xml and attached to the row as a tag object
private class Holder
{
TextView tvName;
TextView tvHome;
ToggleButton tgbtn,tg1;
}
}
请帮我...
以及如何保存所有的切换按钮的状态,这样我可以使用的保存状态保存切换的状态按钮,当应用程序重新打开。
thanx为您的答复。我了解回收机制,但没有得到任何解决方案,以避免这种情况,如果我有一个togglebutton,如果我检查它在位置0(让item1也有一个togglebutton和ichecked它),所以当我向下滚动时,我会见第8项togglebutton已被选中 – Simran 2015-02-24 06:22:08