죄송합니다. 어리석은 질문인데, 기본적으로 어떤 이유로이 작업을 수행하는 방법을 알아 내려고 노력하고 있습니다.CursorAdapter를 사용하여 동적으로 목록에 항목을 추가하는 방법?
ContentProvider
을 사용하여 SQL 데이터베이스에서 채워지는 연락처 (두 개의 매개 변수, 이름 및 전화 번호)가있는 ArrayList가 있습니다. ArrayList는 CursorAdapter
을 사용하여 채워진 다음 UI에 표시됩니다. 사용자가 연락처 목록에 항목을 동적으로 추가 할 수 있기를 바랍니다.
CursorAdapter에서 두 개의 목록 항목 유형은 bindView()
및 newView()
에 정의됩니다. 첫 번째 유형은 이름과 전화 번호에 대한 두 개의 EditText로 구성됩니다. 두 번째 유형은 이름과 전화 번호에 대한 두 개의 TextView로 구성됩니다.
사용자는 "연락처 추가하기"와 형 글고의 새 목록 항목이 동적 목록에 추가됩니다라는 버튼을 누르면 :
기본적으로,이 나는 일이 원하는 것입니다.
사용자가 연락처 정보를 입력 한 다음 "연락처 저장"이라는 버튼을 누릅니다. 이 버튼을 누르면 EditText 유형의 목록 항목이 TextView 유형의 목록 항목으로 변환되고 ArrayList에 추가되고 다른 연락처와 함께 표시됩니다.
나는이의 라인을 따라 적어도 두 번째 문제의 일부, 무언가를하는 방법을 알고 확신 :
이contactsName = nameEditText.getText().toString();
contactsNumber = numberEditText.getText().toString();
contacts.add(new ContactsObject(contactsName, contactsNumber));
contactsAdapter.notifyDataSetChanged();
그러나 나는에 문제가있는 무슨 최초의 일이다. 두 가지 다른보기 유형간에 어떻게 변환합니까? 특정 유형 (EditText)의 목록 항목을 작성한 다음 다른 유형 (TextView)으로 변환하도록 어댑터에 지시하려면 어떻게합니까?
안녕하세요, 저는 여전히이 전체 Cursor에 대해 혼란 스럽습니다. a) CursorLoader가 삽입이 아닌 기존 데이터베이스를 쿼리하는 데 사용됩니까? CursorLoader 메서드를 찾고 있는데 그 중 아무 것도 삽입에 관한 것 같지 않습니다. b) 목록 항목이 EditText 또는 TextView 유형이어야하는지 여부를 처음에 어떻게 지정합니까? c) 그래서 swapCursor를 사용할 때 이전 Cursor를 EditText 데이터 유형으로 스왑하고 데이터 형식 TextView를 사용하여 새 Cursor로 교체해야합니까? 또한 swapCursor가 이전 커서를 반환하는 이유는 무엇입니까? –