In einem benutzerdefinierten Array-Adapter habe ich eine Liste der Zeichenfolge Werte entweder "wahr" oder "falsch".Android Switch-Schalter Tasten bei Iteration
public class CustomFriendList extends ArrayAdapter<String> {
private final Activity context;
private List<String> friendName = new ArrayList<String>();
private List<String> backchatable = new ArrayList<String>();
public CustomFriendList(Activity context, List<String> friendName, List<String> backchatable){
super(context, R.layout.fragment_friend_list_item, friendName);
this.context = context;
this.friendName = friendName;
this.backchatable = backchatable;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView= inflater.inflate(R.layout.fragment_friend_list_item, null, true);
TextView friend = (TextView) rowView.findViewById(R.id.friendName);
Switch switchBackChat = (Switch) rowView.findViewById(R.id.on_off_backchatable);
friend.setText(friendName.get(position));
for (String ele : backchatable) {
//System.out.println(ele.toString());
if(ele.equals("false")){
switchBackChat.setChecked(false);
}else if(ele.equals("true")){
switchBackChat.setChecked(true);
}
}
return rowView;
}
}
Ich bin auf der Suche nach dem Zustand der Schalter nach den Werten "wahr" oder "falsch".
Der obige Code schaltet jedoch alle Schalter in der benutzerdefinierten ListView und nicht die jeweiligen an einer bestimmten Position in der ListView.
Können Sie bitte Ihre gesamte getView-Methode posten? Wie @Pavneet_Singh vorgeschlagen hat, überprüfen Sie die Zeichenfolgenwerte nicht korrekt (verwenden Sie stattdessen ele.equals ("false"), da dies die korrekte Methode zum Überprüfen eines Zeichenfolgenwerts in Java ist). –
Der Check von == zu .equals ist korrekt. Die einzelnen Schalter werden jedoch nicht entsprechend geändert. Sie sind alle zusammen geändert. – Jupiter