Есть функция loadPresetClicked(View v) которая вызывалась по кнопке , нужно сделать чтобы вызов был без нажатия по кнопке то есть просто loadPresetClicked(). И когда так делаю вылетает NullPointerException.
Вот сама функция :
Код: Выделить всё
public void loadPresetClicked() {
String[] names = new String[10 + model.getPresets().size()];
for (int i = 0; i < 10; i++) {
names[i] = eqService.equalizer().getPresetName((short) i);
}
for (short i = 0; i < model.getPresets().size(); i++) {
names[i + 10] = model.getPresets().get(i).getName();
}
this.onSaveInstanceState(new Bundle());
}
Код: Выделить всё
public class EqualizerModel extends Observable {
private ArrayList<Preset> presets;
private Scanner inStream;
private PrintWriter outStream;
private EqualizerActivity parent;
private short[] bandLevels;
public EqualizerModel(EqualizerActivity parent) {
presets = new ArrayList<Preset>();
this.parent = parent;
bandLevels = new short[5];
}
public void writePresetFile() {
File directory = new File("/sdcard/Aurem/");
directory.mkdirs();
File outputFile = new File(directory, "presets.txt");
FileOutputStream outputStream;
String output = "";
try {
outputStream = new FileOutputStream(outputFile);
outStream = new PrintWriter(outputStream);
} catch (IOException e) {
System.out.println(e.getMessage());
}
for (int i = 0; i < presets.size(); i++) {
short index = (short) i;
Preset preset = presets.get(index);
output += preset.index() + ",";
short[] bands = preset.getBands();
for (int j = 0; j < 5; j++) {
output += bands[j] + ",";
}
output += preset.getName() + "\n";
}
outStream.print(output);
outStream.close();
}
public void writeLastStateFile() {
File directory = new File("/sdcard/Aurem/");
directory.mkdirs();
File outputFile = new File(directory, "lastState.txt");
FileOutputStream outputStream;
String output = "";
try {
outputStream = new FileOutputStream(outputFile);
outStream = new PrintWriter(outputStream);
} catch (IOException e) {
System.out.println(e.getMessage());
}
for (short i = 0; i < bandLevels.length; i++) {
output += bandLevels[i] + "\n";
}
outStream.print(output);
outStream.close();
}
public void readLastStateFile() {
FileInputStream inputStream;
try {
inputStream = new FileInputStream("/sdcard/Aurem/lastState.txt");
inStream = new Scanner(inputStream);
} catch (IOException e) {
System.out.println(e.getMessage());
}
inStream.useDelimiter("\n");
for (short i = 0; i < 5; i++) {
bandLevels[i] = Short.parseShort(inStream.nextLine());
}
inStream.close();
}
public void readPresetFile() {
FileInputStream inputStream;
try {
inputStream = new FileInputStream("/sdcard/Aurem/presets.txt");
inStream = new Scanner(inputStream);
} catch (IOException e) {
System.out.println(e.getMessage());
}
inStream.useDelimiter("\n");
while (inStream.hasNext()) {
String line = inStream.next();
String[] data = line.split(",");
short index = Short.parseShort(data[0]);
short[] bands = new short[5];
Preset preset = new Preset(index, data[6]);
for (int i = 1; i < 6; i++) {
bands[i - 1] = Short.parseShort(data[i]);
}
preset.setBands(bands);
for (int i = 0; i < presets.size(); i++)
Log.d("Preset", presets.get(i) + "");
presets.add(index, preset);
}
inStream.close();
}
public Preset getPreset(short index) {
return presets.get(index);
}
public void setBandLevel(short index, short bandLevel) {
bandLevels[index] = bandLevel;
setChanged();
notifyObservers();
}
public short getBandLevel(short index) {
if (index < 0 || index >= bandLevels.length) {
return 0;
}
return bandLevels[index];
}
public void createPreset(String name, short[] bands) {
int index = presets.size();
Preset preset = new Preset((short) (index), name);
preset.setBands(bands);
presets.add(preset);
}
public ArrayList<Preset> getPresets() {
return presets;
}
}
Код: Выделить всё
public class EqualizerService extends Service {
private final ServiceBinder binder = new ServiceBinder();
private Equalizer eq;
@Override
public void onCreate() {
super.onCreate();
eq = new Equalizer(1000000, 0);
for (short i = 0; i < 5; i++) {
eq.setBandLevel(i, (short) 0);
}
eq.setEnabled(true);
}
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
@Override
public IBinder onBind(Intent arg0) {
return binder;
}
@Override
public void onDestroy() {
super.onDestroy();
}
public Equalizer equalizer() {
return eq;
}
public class ServiceBinder extends Binder {
EqualizerService getService() {
return EqualizerService.this;
}
}
}