Итак, я должен получить пользовательский ввод для их имени и номера, добавить его в список и отобразить в 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;
}
}
Когда я нажимаю кнопку, чтобы создать контакт, ничего не отображается.




Вы неправильно добавляете новые контакты в менеджер контактов. Попробуйте что-то вроде:
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;
}
}
После того, как вы это сделаете, вам нужно связать свой дисплей со списком контактов.
Итак, я узнал, что scrollView должен быть textView, поэтому я изменил его на textView.getText(). Проблема в том, что я застрял, пытаясь найти правильный синтаксис для размещения списка контактов здесь. Я пробовал разные подходы, такие как textView.getText(contactsManager.getContacts(List<>()); и т. д.
Я предполагаю, что текстовое представление принимает строку. Поэтому вы, вероятно, захотите использовать textView.setText() (не getText()) и преобразовать свой список в строку.
Ооо, хорошо, спасибо, я попробую это и дам вам знать, как это идет.