Мне нужно прочитать txt-файл в приложении Widget.Чтение файла txt в приложении Widget
Я создаю Txt во внешнем множестве деятельности с именем "NASTAVENI":
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.set);
editor=(EditText)findViewById(R.id.editor);
Button btn=(Button)findViewById(R.id.close);
btn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
phoneNo = editor.getText().toString();
finish();
}
});
}
public void onResume() {
super.onResume();
try {
InputStream in=openFileInput("notes.txt");
if (in!=null) {
InputStreamReader tmp=new InputStreamReader(in);
BufferedReader reader=new BufferedReader(tmp);
String str;
StringBuilder buf=new StringBuilder();
while ((str = reader.readLine()) != null) {
buf.append(str+"\n");
}
in.close();
editor.setText(buf.toString());
}
}
catch (java.io.FileNotFoundException e) {
}
catch (Throwable t) {
Toast
.makeText(this, "Exception: "+t.toString(), 2000)
.show();
}
}
/*BACK**************************************************************************************************************************************/
public void onPause() {
super.onPause();
try {
OutputStreamWriter out=
new OutputStreamWriter(openFileOutput("notes.txt", 0));
out.write(editor.getText().toString());
out.close();
}
catch (Throwable t) {
Toast
.makeText(this, "Exception: "+t.toString(), 2000)
.show();
}
}
}
Основной вид деятельности для приложения виджета с именем "Widget". Мне нужно прочитать txt-файл внешней активности «NASTAVENI» в этом упражнении «Виджет». Виджет активности и NASTAVENI находятся в одном пакете.
Этот код плох (ошибка java.lang.NullPointerException)
try {
InputStream in=openFileInput("notes.txt");
InputStreamReader tmp=new InputStreamReader(in);
BufferedReader reader=new BufferedReader(tmp);
String str;
StringBuilder buf=new StringBuilder();
while ((str = reader.readLine()) != null) {
buf.append(str+"\n");
}
in.close();
editor.setText(buf.toString());
phoneNo = "77";
}
catch (java.io.FileNotFoundException e) {
Toast toast=Toast.makeText(context, "Error FFE!", 1000);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
catch (Throwable t) {
Toast toast=Toast.makeText(context, "Error T!" +t.toString(), 1000);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
Извините за мой английский
Если вы используете виджет не может быть активностью AppWidetProvider расширяет BroadcastReciever –
нулевого указателя на какую линию и делает ваш файл будет создан и имеет правильные данные. –