2011-06-25 32 views
0

我有一個名爲的類MyXMLHandlerTemp其中擴展了DefaultHandler。該類用於解析數據。在MyXMLHandlerTemp中使用SharedPreferences

我想用SharedPreferences MyXMLHandlerTemp類內,但它給了我錯誤說

getSharedPreferences(字符串,整數)是未定義的類型MyXMLHandlerTemp

是否有可能使用SharedPreferences在MyXMLHandlerTemp裏面?如果不是,那麼可以採取哪種解決方案?

+0

請將格式碼作爲'code',而不是粗體! – Drakosha

+0

我是新來的,這就是爲什麼不知道代碼,正常文本和其他東西應該如何呈現的很多東西。無論如何,未來,我會盡量讓事情正確。 @ Drakosha – Junaid

回答

1

您必須將調用活動的上下文傳遞給MyXmlHandlerTemp構造函數。因此,使用該上下文,您可以在MyXmlHandlerTemp類中使用sharedPreference。

private Context context; 
MyXMLHandlerTemp(Context context) 
{ 
     this.context = context; 
} 

context.getSharedPreferences(String,int); 
+0

非常感謝,它爲我工作.....:D – Junaid

0

或者到奇拉格的解決方案,您可以通過getSharedPreferences作爲參數傳遞給你的XML處理程序傳遞Activity/Application'獲得Preference實例或另一個上下文。
新增
您的活動代碼調用XML處理程序:

SharedPreferences prefs = getSharedPreferences("yourPreferenceFileName", MODE_PRIVATE); 
MyXMLHandlerTemp = new MyXMLHandlerTemp(prefs); 

構造函數,MyXMLHandlerTemp

public MyXMLHandlerTemp(SharedPreferences prefs){ 
    this.prefs = prefs; 
} 

這需要您添加SharedPreferences類型的私有字段prefs TI的處理器類。然後,而不是調用getSharedPreferences您的處理程序中,使用此領域prefs

prefs.edit().putString(key, value).commit(); 

等。

+0

請給出一些關於您的解決方案的更多細節,謝謝。 – Junaid

+0

Okey我明白了,這個想法對我來說很清楚,謝謝你的替代想法...... :) – Junaid