2011-08-20 57 views
0

我有一個自定義的edittext類我已經提出,我想從一個首選項xml中檢索一些sharedpref值。我目前正在獲取傳遞給構造函數的上下文,並運行getsharedpreferences。但是,這使應用程序崩潰。我將如何去閱讀那裏的價值觀?getsharedpreferences從自定義的edittext上下文

代碼片斷:

public class RichEditText extends EditText { 
     Context acontext; 
     SharedPreferences synpref; 
    public RichEditText(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     acontext=context; 
     synpref = acontext.getSharedPreferences("synexp", 0); 
     Log.v("MyApp",synpref.getString("exp", "value")); 
    } 
} 

logcat的:

08-20 20:57:06.580:ERROR/AndroidRuntime(13343):了java.lang.RuntimeException:無法啓動活動ComponentInfo { com.eyecreate/com.eyecreate.MyActivity}:android.view.InflateException:二進制XML文件行#21:錯誤膨脹類com.eyecreate.RichEditText
08-20 20:57:06.580:錯誤/ AndroidRuntime(13343):引起:java.lang.reflect.InvocationTargetException 08-20 20:57:06.580:ERROR/Androi dRuntime(13343):導致:java.lang.NullPointerException空指針異常與getSharedPreferences一致

+0

你能發佈異常的logcat日誌嗎? – MByD

+0

也許'context'爲空? – MByD

+0

是的,它似乎上下文爲空。 – eyecreate

回答

1

您可以嘗試this。這樣你就可以從代碼的任何部分獲得首選項。