Подтвердить что ты не робот

Пожалуйста, объясните 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;
        }
      });
  }
}
4b9b3361

Ответ 1

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

Элементы интерфейса UI определены в макете /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 для доступа к системным службам и ресурсам (вам нужен макет надувных элементов для создания списка элементов)

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

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

Наконец, созданный Adapter присваивается ListView

myListView.setAdapter(aa);

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

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

aa.notifyDataSetChanged();

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

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

Ответ 2

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

Ответ 3

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