public class MainActivity extends Activity {
// Dein Button
private Button button;
// Deine TextView
private TextView textView;
// Dynamische Liste die deine Strings enthalten wird, achtung hier kannst du nur Strings hinzufügen (deswegen das <String>)
private ArrayList<String> list;
// Objekt dass dir Methoden anbietet die zufällige Zahlen generieren
private Random random;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialisierung des Buttons
button = (Button) findViewById(R.id.button1);
// Initialisierung der TextView
textView = (TextView) findViewById(R.id.textView1);
// Initialisieur des Objekts Random
random = new Random();
// Initialisierung der Liste und hinzufügen der Strings
initList();
// Zuweisung des listeners an das Button
button.setOnClickListener(listener);
}
private initList(){
list = new ArrayList<String>();
// For schleife, damit die liste schneller bevölkert wird,
for(int i=0;i<20;i++){
// der String s besteht aus "String nummer " und die nummer der variable i in der die schleife gerade steckt
String s = "String nummer "+i;
// der Liste wird der String s hinzugefügt
list.add(s);
}
}
// Der listener für den Button, damit "hört" das programm ob das Button geklickt wurde
private OnClickListener listener = new OnClickListener(){
@Override
public void onClick(View v){
// die Methode nextInt des Objekts Random mit dem Parameter 20, gibt dir eine zufällige zahl zwischen 0 und 19
//(0 weil der erste eintrag einer ArrayList bei 0 anfängt -> d.h. wenn deine Liste 20 einträge hat, dann geht das von 0 bis 19),
// diesen wert weisen wir dann der variable int index
int index = random.nextInt(20);
// Hier holen wir uns dann den String aus der Liste, mit der zuvor generierten Zahl (z.B index=1 -> zweiter eintrag aus der Liste, d.h "String nummer 1")
// und weisen ihn dem String zufaeligerString zu
String zufaeligerString = items.get(index);
// Hier ändern wir den Text der TextView mit unserem String zufaeligerString
textView.setText(zufaeligerString);
}
};
}