-
글쓴이글
-
2022년 5월 9일 02:25 #33499
이동하참가자*** 아래 에러 로그의 일부...
I/flutter (12719): dongdong
E/flutter (12719): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: type 'String' is not a subtype of type 'List<Item>?'
E/flutter (12719): #0 _MyAppState.addPerson (package:flutter_contact/main.dart:78:15)
E/flutter (12719): #1 _DialogDesignState.build.<anonymous closure> (package:flutter_contact/main.dart:283:35)*** OK버튼을 누르면 아래 함수(?)가 실행되도록 짰는데 아무래도 newPerson.phones = number;라고 명명한 부분에서 에러가 발생하는 것 같습니다.
addPerson (given,family,number) async {
var newPerson = Contact();
//newPerson은 Contact란 녀석이다!로 정의
newPerson.givenName = given;
newPerson.familyName = given;
newPerson.phones = number; <---78번째 줄
await ContactsService.addContact(newPerson);
// 연락처에 이름 때려박아 줌
var contacts = await ContactsService.getContacts();
// 추가된 연락처 다시 불러와주고
setState(() {
name = contacts;
});
// 새롭게 name안에 연락처 넣어줌
}*** 위 함수를 dialog에 보내서
TextButton(onPressed: () {
// widget.addName(widget.inputData.text.toString());
// inputData List 안, text를 toString해서 보여주자!
print(widget.inputData.text.toString());
widget.addPerson(widget.inputData.text,
widget.familyName.text,
widget.phoneNumber.text,
);
Navigator.pop(context);}, child: Text('OK', style: TextStyle(fontSize: 18),)),
*** OK버튼 누르면 addPerson 안에 차라락 박히면서 데이터가 촤아-악 보여질 것이라 생각했습니다...
2022년 5월 9일 23:43 #33581
이동하참가자이럴수가,,, 선생님,,, 이제껏 이 강의를 수강한 수많은 학생들이 연락처에 숫자를 넣는 '심화' 숙제를 하지 않은 것 같습니다😨
그렇지 않고선 이걸 질문 안 했을 리가 없다는 생각이... (아님 학생분들이 너-무 똑똑하셔서 알아서 잘 해결 하신건가...🙄)
newPerson.phones = [number]로 해결이 안돼서 공식 문서를 찾았지만...
// Phone numbers
List<Item> phones = [];고작 이정도의 힌트 밖에 얻을 수 없었습니다.
그래서 좀 더 구글링 하던 도중 https://stackoverflow.com/questions/70824453/i-want-to-save-contact-number-at-mobile-storage-using-flutter 이 글을 발견했고
이 사람이 짠 코드를 통해 힌트를 얻어 다음과 같이 코드를 짜보았습니다.
myPerson.phones = [Item(label: "mobile", value: number)];
작동이 잘 되더군요😖
크 성취감 무엇,👍
부디 심화 강의를 요구하는 학생들은 이 숙제를 잘 해결했기 바라며...
항상 감사합니다!🙇
2023년 3월 5일 08:11 #70919
박상용참가자와. 이거 구글링하다가 안되서 여기까지 왔네요. 저는 이렇게 하니깐 폰넘버 입력되었어요. var newContact = Contact(); newContact.phones = [Item(label: "mobile", value: inputData.text.toString())]; ContactsService.addContact(newContact);
2024년 3월 14일 07:17 #116250
장소윤참가자누군가에게는 도움이 됐으면 하는 마음에 작성합니다.. 1. List<Contact> 에서 phones(전화번호) 어떻게 가져옴? 하나의 연락처에 여러 개의 전화번호를 담을 수 있나봅니다. 아래는 첫 번째 연락처의 첫 번째 전화번호를 가져오는 방법입니다. --- List <Contact> contacts = await ContactsService.getContacts(); var phone_number = contacts[0].phones?[0].value; --- 2. 이름하고 전화번호 받아서 핸드폰의 연락처에 저장할 때 에러남 familyName, givenName 으로 받았는지, 전화번호 저장할 때 리스트 속에 Item()을 넣어서 전달했는지 확인하세요. --- Contact newPerson = Contact(); newPerson.familyName = '성'; newPerson.givenName = '이름'; newPerson.phones = [ Item ( label : 'mobile', value : '010-0000-0000' ) ] ; --- 이렇게 하시면 에러 안날거에요.. 참고로 위 코드대로 하면 newPerson.displayName 을 출력했을 때 '성이름' 이라고 나옵니다. 아마 자동으로 familyName, givenName 을 더해서 displayName로 저장되나 봅니다. 직접 display 에 풀네임 저장하고 꺼내쓰려는데 자꾸 null 이라 떠서 한참 골 때렸네요. 참고 : https://pub.dev/documentation/contacts_service/latest/contacts_service/Item-class.html
-
글쓴이글
- 답변은 로그인 후 가능합니다.