Я хочу изменить цвет строки с другим списком
adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, seriennummerList) { @NonNull @Override public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { View view = super.getView(position, convertView, parent); boolean treffer = false; if(seriennummerList.size() != 0) { if(serverresponseList.size() != 0) { view.setBackgroundColor(Color.GREEN); for(String serie : serverresponseList) { for (String server : seriennummerList) { if(serie.equals(server)) { view.setBackgroundColor(Color.RED); treffer = true; break; } } if(!treffer) { view.setBackgroundColor(Color.GREEN); } treffer = false; } } else { view.setBackgroundColor(Color.GREEN); } } return view; } }; adapter.notifyDataSetChanged(); listView.setAdapter(adapter);
Что я уже пробовал:
adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, seriennummerList) { @NonNull @Override public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { View view = super.getView(position, convertView, parent); boolean treffer = false; if(seriennummerList.size() != 0) { if(serverresponseList.size() != 0) { view.setBackgroundColor(Color.GREEN); for(String serie : serverresponseList) { for (String server : seriennummerList) { if(serie.equals(server)) { view.setBackgroundColor(Color.RED); treffer = true; break; } } if(!treffer) { view.setBackgroundColor(Color.GREEN); } treffer = false; } } else { view.setBackgroundColor(Color.GREEN); } } return view; } }; adapter.notifyDataSetChanged(); listView.setAdapter(adapter);
David Crow
Почему вы дважды написали код? Если между ними нет разницы, удалите один. В противном случае люди, читающие это, будут переключаться между ними, пытаясь понять, что вы сделали по-другому.
David Crow
Так что же (не) происходит?
Я бы порекомендовал что-то вроде:
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { if (convertView == null) { LayoutInflater vi = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = vi.inflate(resource_id_of_row, parent, false); } int nColor = Color.Green; // conditions that could change color go here convertView.setBackgroundColor(nColor); return convertView; }