0

이클립스를 사용하여 마스터 세부 흐름을 만들었으며 마스터 세부 흐름 (유형 FragmentActivity)의 목록 활동과 내가 만든 다른 활동 (유형 Activity) 사이에 sqlite 데이터 소스를 사용하고 싶습니다.Activity와 FragmentActivity 사이에서 sqlite 데이터 소스를 공유하는 방법은 무엇입니까?

나는 약간의 읽기를했는데 sqlite 데이터 소스의 인스턴스를 하나만 가지려면 사람들은 기본 활동 (데이터 소스가 들어있는 Activity 유형)을 만들고 다른 모든 활동을 위해이를 확장 할 것을 제안합니다. 이렇게하면 최상위 클래스에서 리소스를 가져올 수 있습니다.이 모든 것이 좋지만 마스터 세부 흐름의 목록 작업에서 기본 동작을 확장 할 수 없습니다. FragmentActivity이 아니기 때문에 Activity이 아닌 Activity ...

제안?

+0

나는베이스 대신 내 자신의 Application 클래스를 사용합니다 활동 ... – WarrenFaith

+0

여기 안드로이드 멍청한 놈 ... 당신이 정교 할 수 있니? 'Activity'와'FragmentActivity' 둘 다에서'Application'에 대한 참조를 얻으려면 어떻게해야합니까? – zoran119

답변

2

저는 WarrenFaith가 그의 의견에서 제안한 바는 Application 클래스를 확장하여 모든 응용 프로그램 구성 요소에서 액세스 할 수있는 글로벌 static 객체를 유지할 수 있다고 생각합니다.

예 ...

public class MyApp extends Application { 

    public static MyObject obj = null; 

    public void onCreate() { 

     obj = new MyObject(); 
     ... 
    } 

    ... 
} 

당신은 다음 Activity 또는 FragmentActivity 다음 중 하나에서 개체에 액세스 할 ...

MyApp.obj.someMethod(); 
+1

Application 클래스는 한 번만 인스턴스화되므로이를 싱글 톤으로 만드는 것을 고려해야합니다. – WarrenFaith

+0

@WarrenFaith : 동의하지만 싱글 렛의 개념으로 문제를 복잡하게 만들지는 않았지만 언급하지는 않았습니다. 내 예제는 원하는 효과를 얻기위한 간단한 출발점 일뿐입니다 (Android로 처음 시작할 때 배웠습니다). – Squonk

0

이 정보가 도움이 될지 모르겠지만 여기를 통해 내가 수행 한 내용을 공유 할 것입니다. 아마도 도움이 될 것입니다.

조각을 사용하는 동안 조각에서 getActivity()를 사용하여 SQLite DS 객체로 전달합니다. 프래그먼트가 연관된 활동을 리턴합니다.

FragmentActivity에서 FragmentActivity 사용 방법에 따라 부모 Activity를 반환하는 getParent()라는 메서드가 나타납니다.

관련 문제