W chwili stworzenia aktywności mam wylosować liczbę, a po naciśnięciu przycisku wypisać ją. Zadanie zostało wykonane, jest jednak jeden haczyk (a jak tam, bez haczyka to tak smutno). Podczas obrotu aplikacji, tracę tą liczbę, wiem że jest w takiej chwili niszczona aktywność i do nowa robiona- stąd ten problem. Nie powoduje to jednak że jestem bliżej rozwiązania, a wręcz przeciwnie.
Próbowałam użyć zmiennej globalnej, naprawdę wiele razy. Zawsze coś nie grało ostatnio to cała aplikacja pada.
O to działający kod(Bez implementacji zmiennej globalnej):
package pl.ww.example.android.klikaaktywnosci;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class KilkaAktywnosciActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Losuj Losuj_liczbe =new Losuj();
int wylosowana_liczba = Losuj_liczbe.losuj_liczby();
SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
editor.putInt("randomowa_liczba", wylosowana_liczba);
editor.apply();
}
public void onClick(View s)
{
SharedPreferences prefs = getPreferences(MODE_PRIVATE);
int wylosowana_liczba = prefs.getInt("randomowa_liczba", 1);
final TextView TextViewNumber = (TextView) findViewById(R.id.wylosowana);
TextViewNumber.setText(""+wylosowana_liczba);
}
}
A klasa globalna :
package pl.ww.example.android.klikaaktywnosci;
import android.app.Application;
import java.util.Random;
import android.util.Log;
public class GlobalClass extends Application {
private int number;
public GlobalClass(){
number=111;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
}
Czy ona jest w porządku? Ja chce tylko wylosować liczbę zapisać ją w zmiennej która przetrwa, a jeśli jest tam coś to biorę a nie losuje. Liczba 111 jest nie możliwa do wylosowania, stąd dałam ją na konstruktor :P.
Co powinnam dodać w kodzie? Aby korzystać z zmiennej globalnej lub w jakiś inny sposób sprawić aby mi ta liczba nie znikała...
dodanie znaczników <code class="java">
- @furious programming