2013-07-30 8 views
0

사용자가 특정 유형의 여러 객체를 정의 할 수있는 응용 프로그램을 작성 중이며이를 "사람"이라고 부를 수 있습니다. 은 "사람"개체는 다음과 같이 정의된다환경 설정 저장소/사용자 정의 소스의 값로드

class Person { 
    public String name; 
    public int age; 
} 

이 "사람"객체가 된 SharedPreferences이나 클라우드 스토리지 메커니즘을 통해 중, 직렬화 앱 내에 저장됩니다. 이것은 처리되고 작동하는 것으로 간주 될 수 있습니다.

내 문제는 사용자가 컬렉션의 특정 "Person"인스턴스의 "이름"과 "나이"를 변경할 수 있도록 편집기 인터페이스가 필요하다는 것입니다. 가능한 한 재고를 느끼기 위해 편집기 인터페이스를 Android에서 구현하는 "환경 설정"인터페이스와 비슷하게 만들고 싶습니다. 따라서 "PreferenceActivity"로드를 만들고 POJO에서/POJO 환경 설정을 저장하는 방법이 필요합니다.

내가 이것을하려는 이유는 사용자가 익숙한 것처럼 느껴지는 UI를 갖기 위해서입니다. 제 다른 선택은 스타일을 모방하고 모든 처리 코드를 직접 작성하는 것입니다. 많은 시간이 소요됩니다.

"Intent"를 통해 "onCreate"를 제공 한 POJO에서 값을 가져 오거나 푸시하기 위해 "PreferenceActivity"의 "load"및 "save"기능을 오버라이드하는 것이 상상되었습니다.이 POJO를 반환하십시오. 호출자의 활동 결과로

달성 가능합니까?

답변

0

이렇게하는 목적은 무엇입니까? 나는 이것이 왜 유용 할까, 그리고 데이터를 포함하고있는 pojo의 참조와 관련하여 어떻게 실현 될 수 있는지를 보지 못한다. 가능하다면 저장 객체는 데이터를 추출해야하는 일반 키 객체 맵일 가능성이 높습니다. 이는 기본 설정이 이미 작동하는 방식입니다.

개인용 개체에 정보를 저장하는 것만으로도 저장된 기본 설정을 기반으로 정보를 만드는 방법이 아닌 것입니다. 당신은 응용 프로그램이 실행되는 동안 모든 사람을 포함 할 응용 프로그램의 정적/싱글 데이터 핸들러 (저장소)를 추가하면, 그것은 식별자의 어떤 종류가 있는지

----- 추가

각 사람. 그런 다음 인 텐트의 ID를 PreferenceActivity에 전달할 수 있습니다. PreferenceActivity는 Data Handler에서 Person 객체를 가져 와서이를 기반으로 PreferenceActivity의 값을 채 웁니다.

"Save"또는 이와 유사한 PreferenceActivity에 다른 기본 설정을 추가합니다.이 기본 설정은 해당 활동에서 해결하고 바인딩합니다. 이 버튼을 클릭하면 현재 입력 된 정보 (SharedPreferences에 저장 됨)를 가져 와서 여기에서 Person 인스턴스를 만듭니다. 그런 다음,이 오브젝트를 Data Handler에 전달하여 Data Handler가 Person의 저장소에 추가합니다 (또는 ID가 이미있는 경우이를 갱신하십시오). 지금은 전체 저장소를 직렬화하여 저장하는 것을 고려해야합니다. 한 가지 간단한 방법은 JSON에 모든 것을 넣고 SharedPreferences에 저장하는 것입니다. 이전에 저장 한 사람이 액세스 할 수 있도록 Data Handler에 처음 액세스 할 때이 데이터를로드해야 함을 잊지 마십시오.

데이터베이스 조작과 같은 구현을 새로 추가하거나 대체하려는 경우를 대비하여 데이터 처리 조치를위한 인터페이스를 작성하는 것이 좋습니다.

이렇게하면 추가/수정 담당자에게 PreferenceActivity를 사용할 수 있습니다. 비록 내가 그것에 대한 자신의 UI를 만들 선호하는 것입니다.

+0

"Person"개체가 여러 개 있고 환경 설정 시스템의 모양과 느낌을 사용하여 각각을 설정하고 싶습니다. 따라서 활동이로드 될 때마다 설정이 다른 "사람"에서 나옵니다 (단 하나가 아닌). 특정 "Person"개체에 대한 기본 설정이라고 생각하십시오. – justacodemonkey

+0

PreferenceActivity를 사용하는 방법은 App의 컨텍스트가 어떤 기본 설정이로드되는지 결정하기 때문에 App 전체에서 공유되는 저장된 값입니다. 따라서 앱 전체에 대해 1 개의 이름과 1 개의 나이가 있습니다. 물론 그것을 둘러싼 작업이 가능합니다. 즉, Activity가 Person 객체를 생성하고 다른 곳에 저장하면 새로운 객체가 다른 사람에게 추가 될 때마다 그 객체를 저장할 수 있습니다. 그러나 그런 식으로하는 것은 다소 비논리적입니다. –

+0

확인. 미안하지만, 내 문제를 이해하고 있다고 생각하지 않아. 나는 당신의 도움에 감사하지만, 나는 분명히 자신을 설명하지 않았습니다. 나는 내 문제를 더 잘 반영 할 수 있도록 질문을 다시 할 것이다. – justacodemonkey

관련 문제