Intereting Posts
Ошибка OpenCV / Android BufferQueue: текстура поверхности была оставлена Не объединяйте текст, отображаемый с помощью setText. Использовать строку ресурсов с заполнителями Как я понимаю, это вход в систему или выход из системы в facebook sdk 4.0.1 Как создать плагин stagefright Как использовать плагины для платформы в рабочем процессе приложения Cordova? Проверка CheckChecker CheckAccess ServiceConnection Как добавить представление в начало линейного макета в коде? Кнопка с цветом фона и прозрачным текстом Google Maps Android – Карта больше не отображается после изменения хранилища ключей Как создать экран загрузки в libgdx? Проблема с углублением эскизов в Android Studio 2.3 Остановка фоновой службы Когда приложение переходит на задний план Наличие двух групп с одним выбором в ActionBar не работает, но добавление всплывающего меню вместо этого не работает Как проверить, является ли моя активность текущей деятельностью на экране Создание прозрачности TileOverlays

Пожалуйста, объясните Array Adapters и их назначение. Еще лучше

Еще лучше, может кто-нибудь объяснить эту программу по пунктам?

package com.paad.todolist; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.View.OnKeyListener; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView; public class ToDoList extends Activity { /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Inflate your view setContentView(R.layout.main); // Get references to UI widgets ListView myListView = (ListView)findViewById(R.id.myListView); final EditText myEditText = (EditText)findViewById(R.id.myEditText); // Create the array list of to do items final ArrayList<String> todoItems = new ArrayList<String>(); // Create the array adapter to bind the array to the listview final ArrayAdapter<String> aa; aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, todoItems); // Bind the array adapter to the listview. myListView.setAdapter(aa); myEditText.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { todoItems.add(0, myEditText.getText().toString()); aa.notifyDataSetChanged(); myEditText.setText(""); return true; } return false; } }); } } 

ToDoList – это активность, определяющая элементы пользовательского интерфейса экрана, которые пользователь видит.

Элементы пользовательского интерфейса экрана определяются в макете /res/layout/main.xml

Одним из элементов пользовательского интерфейса в макете main.xml является ListView, чей идентификатор – myListView

ListView может быть чем-то, что действует как контейнер для элементов списка. Таким образом, все представление списка должно знать, сколько элементов находится в списке и как выглядит каждый элемент списка?

Адаптер – это то, что знает о элементах списка и как представлять или рисовать каждый элемент списка на экране.

В приведенном выше примере используется ArrayAdapter, и его конструктор принимает 3 параметра, имеющих информацию о элементах списка

 final ArrayAdapter<String> aa; aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, todoItems); 

Первый аргумент – это Context для доступа к системным службам и ресурсам (вам нужен макет надувных элементов для создания списка элементов списка)

Второй аргумент определяет макет списка, который определяет, как элемент списка отображается в списке. Здесь используется layout android.R.layout.simple_list_item_1 который определяется каркасом.

Третий аргумент – это информация о элементе списка, обычно эта информация используется для создания представления для элемента списка.

Наконец, создан Adapter для ListView

 myListView.setAdapter(aa); 

Теперь ListView вызывает функции Adapter чтобы получить представление элемента списка и заполнить его в контейнере.

Если элементы списка изменены (здесь список todo) Адаптер может позволить ListView узнать об этом, вызвав notifyDataSetChanged .

 aa.notifyDataSetChanged(); 

Вы можете взглянуть на реализацию ArrayAdapter, чтобы получить больше ясности.

Надеюсь, это поможет вам!

Говоря простыми словами, Adapter является обработчиком коллекции, который возвращает каждый элемент в коллекции как представление. ArrayAdapter – один из многих адаптеров, доступных в Android. Другие включают в себя: ListAdapter, GalleryAdapter, CursorAdapter и т. Д. Посмотрите ссылки на Android

Проверить: ArrayAdapter

Объект Adapter действует как мост между AdapterView и базовыми данными для этого представления. Adapter обеспечивает доступ к элементам данных. Adapter также отвечает за создание представления для каждого элемента в наборе данных. адаптер