5

저는 특정 액티비티 (기본적으로 작은 게임을위한 "데이터 모델")에서 액세스해야하는 많은 변수가있는 Android 앱을 작성하고 있습니다. 현재, 저는 그것들을 모두 하나의 거대한 "container"클래스에 저장하고 있습니다. 그래서 저는 그것들을 내 activity 클래스를 오염시키지 않고 쉽게 참조 할 수 있습니다. 예 :안드로이드의 리소스 시스템과 비슷한 점이 있습니까?

public class Model 
{ 
    private int a; 
    private String b; 
    private float c; 

    ... 

    public int getA() 
    { 
     return a; 
    } 

    public void setA(int a) 
    { 
     this.a = a; 
    } 

    public String getB() 
    { 
     return b; 
    } 

    public void setB(String b) 
    { 
     this.b = b; 
    } 

    public float getC() 
    { 
     return c; 
    } 

    public void setC(float c) 
    { 
     this.c = c; 
    } 

    ... 
} 

자세히 알 수 있듯이 유형은 다르며 모두 getter 및 setter가 있습니다. 그러나 이런 식으로 저장하는 것은 번거로울 수 있습니다. 또한 변수 그룹을 반복하고 싶지만이 플랫 게터/세터 형식으로는 실제로 할 수 없습니다.

나는 안드로이드의 자원 시스템에 대해 알고 있지만 변수가 응용 프로그램 전체/전역이 아니기 때문에이 방법은 적합하지 않은 것으로 보입니다. 이러한 활동의 ​​수명 동안 만 존재하며 활동이 시작될 때마다 프로그래밍 방식으로 생성됩니다.

나는이 모든 것을 Map<String, Object> 구조체에 넣을 생각이었습니다. 여기서 구조체는 String 키를 통해 각 변수를 참조 할 수있었습니다. 이렇게하면지도에서 put 또는 get을 호출 할 수 있으므로 getter 및 setter가 많은 컨테이너 클래스가 필요하지 않습니다. 그러나지도에서 가치를 얻고 싶을 때마다 예상되는 유형으로 캐스팅해야합니다. 나는 그 소리가 싫어.

누구나 더 좋은 해결책이 있습니까? 더 작고 임시적인 규모로 사용할 수있는 Android의 자원 시스템과 비슷한 것이 있습니까?

+0

합니다. 그게 무슨 뜻인지 확실하지 않습니다. – Tooroop

답변

0

이것이 Activity의 상태를 모델링하기위한 것이라면 각 모델 객체에 대한 실제 클래스를 정의하지 않은 이유가 확실하지 않습니다. 그것은 내 제안 일 것입니다. 당신은 하나의 클래스에서 함께 버리는 것만으로 C와 비슷한 절차 적 접근법을 취하고 있습니다. 또한 코드에 정적 getter 및 setter가 표시되지 않으므로 컨테이너 클래스를 만들고 액세스해야합니다. 이 작은 스 니펫을 기반으로하고 더 많은 컨텍스트가 없으면 더 나은 답변을 제공하기가 어렵습니다.

+0

각 모델 객체에 대한 클래스를 정의 하시겠습니까? 이게 무슨 뜻인지 모르겠다. –

0

각 활동에 대해 사용자 지정 xml 리소스 파일을 정의 할 수 있습니다. 이러한 파일은/src 폴더와 동일한 수준의/xml 폴더에 저장됩니다. Resources 클래스를 사용하여로드하십시오.

또는이 문제를 살펴 가지고 : 당신이 클래스를 만들고 변수는 곳에서나 변수에 액세스 할 수있는 정적 경우 Dynamic Resource Loading Android

관련 문제