Как отобразить контакты ArrayList<Contact> в моем ScrollView?

Итак, я должен получить пользовательский ввод для их имени и номера, добавить его в список и отобразить в ScrollView. Однако я не знаю, что еще я должен сделать на последнем шаге, чтобы отобразить его. У меня есть класс Main, Contact и ContactsManager.

Button      contactButton;
EditText    nameText;
EditText    numberText;
ScrollView  scrollView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    contactButton = findViewById(R.id.button);
    nameText = findViewById(R.id.editTextName);
    numberText = findViewById(R.id.editTextNumber);
    scrollView = findViewById(R.id.scrollView);
    final ContactsManager contactsManager = new ContactsManager();

    contactButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String enterText;
            String enterNumber;

            enterText = nameText.getText().toString();
            enterNumber = numberText.getText().toString();

            contactsManager.createContact(enterText, enterNumber);

            scrollView.getDisplay();
        }
    });
}

public class Contact {
    private String name;
    private String phoneNumber;

    public Contact(String nName, String NPhoneNumber) {
        this.name = nName;
        this.phoneNumber = NPhoneNumber;
    }

    public Contact() {
    }

    public String getName() {
        return name;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }
}

public class ContactsManager {

    private ArrayList<Contact> contacts;

    public Contact createContact(String name, String phoneNumber) {
        Contact contact = new Contact();
        this.contacts = new ArrayList<>();
        return contact;
    }
}

Когда я нажимаю кнопку, чтобы создать контакт, ничего не отображается.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
121
1

Ответы 1

Вы неправильно добавляете новые контакты в менеджер контактов. Попробуйте что-то вроде:

public class ContactsManager {

    private List<Contact> contacts;

    public ContactsManager() {
        contacts = new ArrayList<>(); // Initialise the list once.
    }
    public Contact createContact(String name, String phoneNumber) {
        Contact contact = new Contact(name, phoneNumber);
        contacts.add(contact); // Add the new contact to the list
        return contact;
    }
    // Use this to access all your contacts
    public List<Contact> getContacts() {
        return contacts;
    }
}

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

Ооо, хорошо, спасибо, я попробую это и дам вам знать, как это идет.

Joshua Thao 24.01.2019 03:17

Итак, я узнал, что scrollView должен быть textView, поэтому я изменил его на textView.getText(). Проблема в том, что я застрял, пытаясь найти правильный синтаксис для размещения списка контактов здесь. Я пробовал разные подходы, такие как textView.getText(contactsManager.getContacts(List<>()); и т. д.

Joshua Thao 24.01.2019 18:48

Я предполагаю, что текстовое представление принимает строку. Поэтому вы, вероятно, захотите использовать textView.setText() (не getText()) и преобразовать свой список в строку.

dave 24.01.2019 23:01

Другие вопросы по теме