当我尝试在我工作的SAX xml处理程序中访问SharedPreferences时,我无法获得任何prefs来读取和写入...此行不断崩溃..
SharedPreferences mySharedPreferences
PreferenceManager.getDefaultSharedPreferences(this);
在
期间,还会以许多不同的方式多次删除this.db = openHelper.getWritableDatabase();
如果我尝试使用处理程序
的话也宣布
private Context context;
...
...
@Override
public void endElement(String namespaceURI, String localName, String qName)
throws SAXException {
if (localName.equals("report")) {
this.in_report = false;
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); //CRASH!! on getDefaultSharedPreferences
preferences.edit().putString("TIMEPERIOD_NUMBER","GREEN").commit();
}
}
并始终收到logcat PreferenceManager类型中的方法getDefaultSharedPreferences(Context) 不适用于论点......
在解析期间我有一些标志设置为put我需要在处理标签期间设置这些内部字符串pref标志....似乎我的上下文无法解决。
我有使用绑定器的概念,并且可能在我的主活动上放置一个监听器来调用执行xml处理的处理程序。我已经尝试了各种方法将上下文传递给处理程序,看起来DefaultHandler是一个黑洞..
现在我正在尝试在处理程序中创建一个List,并查看我是否可以将其传递回主活动...
我真的需要通过我在数据库处理程序中设置的sqllite数据库插入操作来放置xml记录..但是对于我的生活我不能。
ParsedDataSet fluRec = new ParsedDataSet();
fluRec.setSstate(sstate.toString());
fluRec.setSabbrev(sabbrev.toString());
fluRec.setSstate(slabel.toString());
fluRec.setSyear(syear.toString());
fluRec.setSweek(stimeperiod.toString());
list.add(fluRec);
我创建了一个可爱的小循环,用于遍历从xml处理程序传递的记录......我将在xml处理之后执行我的db / pref操作。 :)
private static void FluRecordLooper(List<FluDataSet> fluRec){
int size=fluRec.size();
for (int i = 0; i < size; i++) {
Log.v("MainActivity", "forLoopIncr --> " + fluRec.get(i).getSabbrev());
Log.v("MainActivity", "forLoopIncr --> " + fluRec.get(i).getSweek());
Log.v("MainActivity", "forLoopIncr --> " + fluRec.get(i).getSstate());
Log.v("MainActivity", "forLoopIncr --> " + fluRec.get(i).getSyear());
Log.v("MainActivity", "forLoopIncr " + fluRec.size() );
}
}
Lenn