Я создаю приложение для Android, использующее Java в Android Studio. Мне нужно создать представление списка, в котором ранее выбранные элементы будут отображаться как выбранные при воссоздании списка. Можно выбрать несколько элементов из списка. Сначала будет создан список, и мы будем отслеживать, что сохраняется в списке Pair<String, boolean>
, где String
- элемент списка, а boolean
указывает, был ли выбран этот элемент.Как редактировать цвет фона элементов списка элементов программно, прежде чем представление списка будет показано в приложении для Android?
Я обрабатывать изменения цвета фона с помощью
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
if(!tmpSelectedSkills.get(position).isSelected()){
tmpSelectedSkills.get(position).setIsSelected(true);
parent.getChildAt(position).setBackgroundColor(
Color.parseColor("#A9BCF5"));}
else{
tmpSelectedSkills.get(position).setIsSelected(false);
parent.getChildAt(position).setBackgroundColor(
Color.parseColor("#ffffff"));}
}
Если пользователь закрывает вид списка и выбирает, чтобы воссоздать ее, чтобы изменить свой выбор, я хотел бы изменить цвет фона его предыдущих выборов в новый список, прежде чем показывать его пользователю.
Для этого мне нужно получить доступ к
View view
с подписью onItemClick
, что соответствует View
которого я хочу, чтобы изменить цвет фона.
Вы справляетесь с этим в своем «ListAdapter». С помощью 'ArrayAdapter', который будет частью вашего метода getView(). Для «SimpleCursorAdapter» это может быть выполнено с помощью «ViewBinder». И так далее. – CommonsWare
@CommonsWare вы имеете в виду общественного абстрактную (положение INT, android.view.View convertView, android.view.ViewGroup родитель) android.view.View GetView ? Если да, то я не уверен, что соответствует конвертируемому здесь, и что представляет родитель (это вид списка?) – genericProgrammer112358
'getView()' является 'абстрактным' только на' BaseAdapter'. Другие классы адаптеров (например, 'ArrayAdapter',' SimpleCursorAdapter') имеют конкретную реализацию, которую вы можете переопределить. Но, да, это метод 'getView()', на который я ссылался в своем предыдущем комментарии. Если вы не знаете, что такое 'getView()', или как оно работает, у вас гораздо больше фундаментальных пробелов в ваших знаниях, которые вам нужно решать, задолго до того, как вы снова начнете думать о проблеме, указанной в вашем вопросе. – CommonsWare