Главная » Разработка для Android » Настройка ArrayAdapter

0

По умолчанию ArrayAdapter использует метод toString из объекта мас- сива, чтобы наполнять данными  элемент  TextView,  размещенный внутри указанной разметки.

В большинстве  случаев нужно будет изменять  разметку, применяемую для отображения каждого Представления. Сделать это можно с помощью на- следования класса ArrayAdapter, указывая конкретный тип и переопределяя

метод getView,  чтобы установить  свойства  объекта для Представлений из разметки, как показано в листинге 5.23.

Метод getView используется для создания и наполнения данными Пред- ставления, отображаемого внутри родительского элемента AdapterView (на- пример, ListView), который был привязан к исходному массиву с помощью этого Адаптера.

Метод getView  принимает  следующие  параметры:  позицию  элемента, на какой он будет выведен, Представление, которое обновляется (или null), а также объект ViewGroup, где новое Представление поместится. Вызов мето- да getItem вернет значение из исходного массива по указанному  индексу.

В результате  метод getView должен вернуть экземпляр Представления, наполненный данными.

Листинг 5.23.

public class MyArrayAdapter extends ArrayAdapter<MyClass> {

int resource;

public MyArrayAdapter(Context context, int _resource, List<MyClass> items) {

super(context, _resource, items);

resource = _resource;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) { LinearLayout newView;

MyClass classInstance = getItem(position);

// TODO Извлечь из переменной classInstance

// данные для отображения.

// Inflate a new view if this is not an update. if (convertView == null) {

newView = new LinearLayout(getContext());

String inflater = Context.LAYOUT_INFLATER_SERVICE; LayoutInflater vi = (LayoutInflater)getContext().

getSystemService(inflater);

vi.inflate(resource, newView, true);

} else {

newView = (LinearLayout)convertView;

}

// TODO Извлечь Представления для наполнения их данными.

// TODO Наполнить Представления свойствами из полученного объекта.

return newView;

}

}

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии