Я пытаюсь использовать метод openFileOutput в классе бездействия. Когда я пытаюсь использовать контекст из MainActivity (this), происходит сбой программы.
Какая форма для использования этого метода в моем классе?
private Context context;
public Events(Context context) {
this.context = context;
}
public void setEvent(int year, int month, int dayNumber, int hour, int minutes, String event, String eventParameters) {
try {
OutputStreamWriter events = new OutputStreamWriter(context.openFileOutput("events.txt", Context.MODE_PRIVATE));
} catch(IOException e) {
e.printStackTrace();
} // End of try
} // End of method - setEvent
У меня есть персонализированный диалог, он используется для вызова метода setEvent.
public CellOptions(final Dialog dialog) {
final Events event = new Events(dialog.getContext());
final TextView newEvent = (TextView) dialog.findViewById(R.id.newEvent), eventView = (TextView) dialog.findViewById(R.id.eventView);
newEvent.setOnClickListener(new View.OnClickListener() {
public void onClick(View option) {
event.setEvent(2018, 0, 1, 0, 0, "New year", "Nothing");
eventView.setBackgroundColor(Color.rgb(0, 0, 8));
}
});
}
public boolean showed() {
return true;
}
Также я пытался использовать setEvent в классе MainActivity из следующей формы.
Events event = new Events(this, the next parameters);
Но это не работает.
Я искал ответы об этой проблеме, но не могу найти решение, которое мне помогает.
Я нашел эти страницы, но та же проблема продолжается.
как вызвать метод в форме деятельности, не относящейся к классу деятельности
Получение активности из контекста в Android
с использованием openFileOutput () в классе. (не деятельность)
http://www.sgoliver.net/blog/ficheros-en-android-i-memoria-interna/
При запуске программы происходит сбой при использовании контекста.
Logcat показывает это:
01-03 15: 55: 25.932: W / Binder (632): обнаружена исключительная ситуация RuntimeException из реализации заглушки Binder.
01-03 15: 55: 25.932: W / Binder (632): java.lang.NullPointerException
01-03 15: 55: 25.932: W / Binder (632): на android.inputmethodservice.IInputMethodWrapper.setSessionEnabled (IInputMethodWrapper.java:280)
01-03 15: 55: 25.932: W / Binder (632): на com.android.internal.view.IInputMethod $ Stub.onTransact (IInputMethod.java:129)
01-03 15: 55: 25.932: W / Binder (632): на android.os.Binder.execTransact (Binder.java:404)
01-03 15: 55: 25.932: W / Binder (632): at dalvik.system.NativeStart.run (собственный метод)
01-03 15: 55: 25.932: W / InputMethodManagerService (487): Получено RemoteException, отправляющее уведомление setActive (false) на pid 2744 uid 10036
01-03 15: 55: 26.572: I / ActivityManager (487): отображается com.android.dropcalendary / .MainActivity: + 4s402ms