Пытаюсь сделать запись настроек приложения в файл, ввиду чего использую класс написанный для "простой" java. При изменении положения Сикбара в текстовый файл должно записываться число. Но почему-то при движении Сикабара приложение вылетает:
package com.pacs31.calc;
import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.TextView;
public class SettingsActivity extends Activity {
SeekBar sB1;
TextView tvSetAc;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
sB1 = (SeekBar) findViewById(R.id.seekBarSettingsAccuracy);
tvSetAc = (TextView) findViewById(R.id.tvSettingsAccuracy);
sB1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar1, int progressAccuracy, boolean fromUser) {
int progress = progressAccuracy;
tvSetAc.setText("Accuracy: "+progressAccuracy);
ReadNWrite.write(Integer.toString(progressAccuracy), "settingsAccuracy");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar1) {
}
});
}
}
Вот класс ReadNWrite, который вызывается в Сикбаре:
package com.pacs31.calc;
import java.io.File;
import java.util.Formatter;
import java.util.Scanner;
public class ReadNWrite {
private Formatter fileF;
protected void openFileW(String fileName) {
try {
//fileF = new Formatter("D:\\fileSettings.txt");
fileF = new Formatter(fileName);
//System.out.println("Added");
} catch (Exception e) {
//System.out.println("Error");
}
}
protected void addRecordW(String record) {
fileF.format(record);
}
protected void closeFileW() {
fileF.close();
}
//---------------------------------------------
private Scanner fileS;
protected void openFileR(String fileName) {
try {
//fileS = new Scanner(new File("D:\\fileSettings.txt"));
fileS = new Scanner(new File(fileName));
//System.out.println("Scanned");
} catch (Exception e) {
//System.out.println("Error");
}
}
protected String readFileR() {
String id = null;
while (fileS.hasNext()) {
id = fileS.next();
//System.out.println(id);
}
return id;
}
protected void closeFileR() {
fileS.close();
}
//------------------------------
protected static void write(String recordArg, String fileName){
ReadNWrite func = new ReadNWrite();
func.openFileW(fileName);
func.addRecordW(recordArg);
func.closeFileW();
}
protected static String read(String fileName){
ReadNWrite func = new ReadNWrite();
func.openFileR(fileName);
String ret = func.readFileR();
func.closeFileR();
return ret;
}
}
Почему так происходит? Пробовал сделать через файл настроек типа "ключ-значение", но потерпел неудачу.
Для записи файла нужно получить разрешение . До 6 версии это делалось через manifest после нужно ручное протверждение
Вы установили разрешение на чтение и запись в манифесте? К тому же, на последних android Нужно проверять сей permision при попытки пользователя писать даннные. Посмотрите здесь https://stackoverflow.com/questions/1998400/data-directory-has-no-read-write-permission-in-android
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пишу школьный проект - программа для шифрованияВ таблице TableView есть записи, на которых стоит пароль, т
При использовании интерфейса CommandLineRunner приложение работает как положено:
Нужно имея json файл заполнить все int'ы и String'ы в этом же классе(он static)
ЗдравствуйтеПытаюсь сделать некоторые операции по выводу уникальных чисел из массива, и в большинстве случаев выдается нормальный результат,...