0

我使用Eclipse創建主詳細信息流,現在想在主詳細信息流(類型爲FragmentActivity)和我創建的另一個活動(類型爲Activity)之間的列表活動之間使用sqlite數據源。如何在Activity和FragmentActivity之間共享sqlite數據源?

我做了一些閱讀,爲了只有一個sqlite數據源實例,人們建議做一個基本活動(類型爲Activity,包含數據源),然後將其擴展到所有其他活動。這樣我就可以從超類中獲取資源......這是很好的,但我無法擴展主細節流的列表活動中的基本活動,因爲它擴展了FragmentActivity而不是Activity ...

任何建議?

+0

我會用我自己的應用類,而不是一個基地活動...... – WarrenFaith

+0

android noob here ...你能詳細點嗎?我如何從'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上,我看到一個名爲getParent()的方法,該方法返回父Activity,具體取決於如何使用FragmentActivity。

相關問題