MainActivityのメソッドをほかのアクティビティーから呼び出すためにインスタンスを生成して実行したのですが、「SharedPreferences」を使っている部分で「java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference」というエラーが出てしまいます。
java
1Realm realm = Realm.getDefaultInstance(); 2 //リセット 3 RealmQuery<DataModel> query = realm.where(DataModel.class); 4 RealmResults<DataModel> result = query.findAll(); 5 realm.beginTransaction(); 6 result.deleteAllFromRealm(); 7 realm.commitTransaction(); 8 9 InputStream is = null; 10 BufferedReader br = null; 11 int times = 1; 12 try { 13 try { 14 is = this.getAssets().open("data.txt"); 15 br = new BufferedReader(new InputStreamReader(is)); 16 String str; 17 18 String wordEnTemp = null; 19 String wordJpTemp = null; 20 String sentenceEnTemp = null; 21 String sentenceJpTemp = null; 22 int indexTemp = 0; 23 24 while ((str = br.readLine()) != null) { 25 switch (times%4){ 26 case 1: 27 //単語 28 wordEnTemp = str; 29 break; 30 case 2: 31 //和訳 32 wordJpTemp = str; 33 break; 34 case 3: 35 //例文 36 sentenceEnTemp = str; 37 break; 38 case 0: 39 //和訳 40 sentenceJpTemp = str; 41 42 //データ保存 43 realm.beginTransaction(); 44 DataModel model=realm.createObject(DataModel.class); 45 model.setIndex(indexTemp); 46 model.setWordEn(wordEnTemp); 47 model.setWordJp(wordJpTemp); 48 model.setSentenceEn(sentenceEnTemp); 49 model.setSentenceJp(sentenceJpTemp); 50 model.setProgressWord(0); 51 model.setProgressSpelling(0); 52 model.setTimeWord(0); 53 model.setTimeSpelling(0); 54 realm.commitTransaction(); 55 56 indexTemp++; 57 break; 58 } 59 times++; 60 } 61 } finally { 62 if (is != null) is.close(); 63 if (br != null) br.close(); 64 } 65 } catch (Exception e){ 66 } 67 //完了 68 SharedPreferences preferences = getSharedPreferences("data",MODE_PRIVATE); 69 SharedPreferences.Editor editor = preferences.edit(); 70 editor.putInt("count",1); 71 editor.commit();
Java
1MainActivity main = new MainActivity(); 2main.loadFile();
回答2件
あなたの回答
tips
プレビュー