현재 두 개의 하위 클래스가있는 부모 클래스가 있고 본질적으로 둘 다 공유 변수 (float)를 상속 받도록하고 싶습니다. subclass1에서 float 값을 설정 한 다음 subclass2에서 float 값을 사용해야합니다. 나는 이것들이 모든 안드로이드 액티비티이고 subclass1은 액티비티 체인의 시작에 있고 subclass2는이 체인의 끝에 있으며, 그 사이의 모든 액티비티는 같은 부모 클래스의 자식들이라는 것을 덧붙여 야합니다.자바의 서브 클래스 내 공유 변수
내가 현재 가지고하는 것은 비슷한는 다음 가치를 떠
이class activityParent extends Activity{
public static float value;
public void setValue(){
//grab the value from phone (ill leave this code out and will hardcode a value below as an example)
value = 0.6f;
}
public void useValue(){
//where i use the value in another function here
otherFuncion(value);
}
}
class subclass1 extends activityParent
{
@Override
public void onCreate(Bundle bundle){
setValue();//need this to be initialized first
super.onCreate(bundle);
}
}
class subclass2 extends activityParent{
//some previous code here
//i need to use the value just before the activity finishes
useValue();
finish();
}
다른 곳에서는 사용되지 않습니다 (이 그냥 맨손으로 뼈 체크 아웃 내가 다른 코드를 많이 떠 났어요) .
이 접근법은 잘못된 것처럼 보입니다.하지만이 방법을 잘 알고 있지만 올바르게 구현하는 방법을 모르겠습니다.
데이터를 의도와 함께 전달하려고 생각했지만 두 하위 클래스가 서로 직접 접촉하지 않았기 때문에 이들 사이의 일련의 활동을 통해 이러한 데이터를 문자열로 연결하지 않아도됩니다. 끝.
아마도 이것은 좋은 습관은 아니지만 파일에 값을 쓰고 다른 활동에서 읽을 수는 있습니다. – iWumbo
나는 접근법의 문제점을 보지 못했다. 정적 변수가 있으며 어떤 활동으로도 넘어 가지 않고 언제 어디서나 액세스 할 수 있습니다. 아니면 당신의 질문이 충분히 명확하지 않을 수도 있습니다! –
@NguyenDoanTung과 동의하십시오. 정적 필드를 사용하는 것이 좋지 않다고 생각하면 싱글 톤 데이터 컨테이너 클래스를 사용하거나 값을 저장하고 가져 오기 위해 SharedPreferences (Android에서 가장 간단한 영구 저장 장치)를 사용하는 것이 좋습니다. –