Hi
Vorweg, ich bin ein wirklicher Anfänger, die dinge die ich bis jetzt weiß habe ich mir durch Bücher und google beigebracht. Nachdem ich mich mit Java auseinandergesetzt habe wollte ich mich parallel mit der Entwicklung auf Android befassen.
Meine Idee war, eine App zu erstellen die "Quizduell" ähnelt. Also eine zufällige Frage mit 4 Antwortmöglichkeiten auf Buttons, wobei die Position der Richtigen Antwort auch zufällig ist. Soweit bin ich gekommen, allerdings schaffe ich es nicht das sich nach dem Buttonklick eine neue frage läd. Ich habe es dann mit einer while-schleife um den code probiert, allerdings blieb dann mein Fenster komplett schwarz. Wahrscheinlich weil die Schleife nirgends angehalten wird, sondern unendlich oft von vorne beginnt. Danach habe ich (durch google inspiriert) eine schleife in dieser Schleife gemacht, die das Programm aufhalten sollte und nach einem Buttonklick beendet wird. Allerdings wieder nur ein schwarzes Fenster.
Könnt ihr mir sagen wie ich das Problem lösen kann? Wäre sehr dankbar über Codeverbesserung, Stichworte und alles was nützlich sein kann. Außerdem noch eine Frage, weshalb lassen sich in onClickListener nur finale Variablen benutzen?
Habt ihr eventuell noch gute Websites, Tutorials oder Bücher die ihr empfehlen würdet und die sich direkt auf den Umgang mit android beziehen? Ist es sinnvoll mit der entwicklerseite direkt zu lernen?
Danke für eure Hilfe
Anbei mein code; außer dieser klasse gibt es noch eine für Fragen, Antworten, einer Zufallszahl und einer prüfungsklasse die mir sagt ob die richtige auswahl getroffen wurde.
[Java]
package com.quizapp.quizapp;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import java.util.*;
import android.view.View.*;
public class MainActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Bekomme Buttons und objekte = = = = = = = = = = = = =
final Button buttonol =(Button) findViewById(R.id.buttonol);
final Button buttonor =(Button) findViewById(R.id.buttonor);
final Button buttonul =(Button) findViewById(R.id.buttonul);
final Button buttonur =(Button) findViewById(R.id.buttonur);
TextView meinefragebox =(TextView) findViewById(R.id.fragetext);
fragen meinefrage = new fragen();
zuzahlen zufallszahl = new zuzahlen();
meinefrage.setfragen();
antworten antworter = new antworten();
antworter.setant();
final pruefen pruefung = new pruefen();
boolean spiellaeuft = true;
final TextView ergebntxt = (TextView) findViewById(R.id.ergebnisanzeige);
final TextView punktzahl =(TextView) findViewById(R.id.pktzahl);
int punkte = 0;
// = = = = = = = = = = = = = = = = = = = = = = = = =
int bu;
bu = meinefrage.anzahlfragen();
int zahl = zufallszahl.getzahl(bu);
String diefrage = meinefrage.getfragen(zahl);
meinefragebox.setText(diefrage);
int zuege = 1;
//while(spiellaeuft){
//if(zuege>0){
//=== Antworten b3kommen
ArrayList<String> dieantworten = new ArrayList<String>();
dieantworten = antworter.getantworten(zahl);
final String richtigeantwort = dieantworten.get(0);
String falschantwort1 = dieantworten.get(1);
String falschantwort2 = dieantworten.get(2);
String falschantwort3 = dieantworten.get(3);
int min = 0;
int max = 4;
int wielange = 4;
// Den Buttons die Antwortmöglichkeiten zuweisen
int position = (int) (Math.random()*max);
max = max-1;
buttonol.setText(dieantworten.get(position));
dieantworten.remove(position);
//===
position = (int) (Math.random()*max);
max = max-1;
buttonor.setText(dieantworten.get(position));
dieantworten.remove(position);
//===
position = (int) (Math.random()*max);
max = max-1;
buttonul.setText(dieantworten.get(position));
dieantworten.remove(position);
//===
position = (int) (Math.random()*max);
max = max-1;
buttonur.setText(dieantworten.get(position));
dieantworten.remove(position);
int zt = 5;
//========Den Buttons ihren zweck geben
int solange = 1;
ergebntxt.setText("");
buttonol.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View p1)
{
final String a = (String) buttonol.getText();
boolean istrichtig = pruefung.pruefdich(richtigeantwort, a);
if(istrichtig){
ergebntxt.setText("Die antwort war richtig!");
}else{
ergebntxt.setText("Leider Falsch");
}
}
});
buttonor.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View p1)
{
final String a = (String) buttonor.getText();
boolean istrichtig = pruefung.pruefdich(richtigeantwort, a);
if(istrichtig){
ergebntxt.setText("Die antwort war richtig!");
}else{
ergebntxt.setText("Leider Falsch");
}
}
});
buttonul.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View p1)
{
final String a = (String) buttonul.getText();
boolean istrichtig = pruefung.pruefdich(richtigeantwort, a);
if(istrichtig){
ergebntxt.setText("Die antwort war richtig!");
}else{
ergebntxt.setText("Leider Falsch");
}
}
});
buttonur.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View p1)
{
final String a = (String) buttonur.getText();
boolean istrichtig = pruefung.pruefdich(richtigeantwort, a);
if(istrichtig){
ergebntxt.setText("Die antwort war richtig!");
}else{
ergebntxt.setText("Leider Falsch");
}
}
});
//_____________
if(ergebntxt.getText().equals("Leider Falsch")){
solange = 0;
zt =0;
}else if(ergebntxt.getText().equals("Die antwort war richtig!")){
zt = 0;
solange = 0;
}
l
};
//ergebntxt.setText("Spiel zuende");
//}//ende der while spiellaeuft schleife
}[/code]
Vorweg, ich bin ein wirklicher Anfänger, die dinge die ich bis jetzt weiß habe ich mir durch Bücher und google beigebracht. Nachdem ich mich mit Java auseinandergesetzt habe wollte ich mich parallel mit der Entwicklung auf Android befassen.
Meine Idee war, eine App zu erstellen die "Quizduell" ähnelt. Also eine zufällige Frage mit 4 Antwortmöglichkeiten auf Buttons, wobei die Position der Richtigen Antwort auch zufällig ist. Soweit bin ich gekommen, allerdings schaffe ich es nicht das sich nach dem Buttonklick eine neue frage läd. Ich habe es dann mit einer while-schleife um den code probiert, allerdings blieb dann mein Fenster komplett schwarz. Wahrscheinlich weil die Schleife nirgends angehalten wird, sondern unendlich oft von vorne beginnt. Danach habe ich (durch google inspiriert) eine schleife in dieser Schleife gemacht, die das Programm aufhalten sollte und nach einem Buttonklick beendet wird. Allerdings wieder nur ein schwarzes Fenster.
Könnt ihr mir sagen wie ich das Problem lösen kann? Wäre sehr dankbar über Codeverbesserung, Stichworte und alles was nützlich sein kann. Außerdem noch eine Frage, weshalb lassen sich in onClickListener nur finale Variablen benutzen?
Habt ihr eventuell noch gute Websites, Tutorials oder Bücher die ihr empfehlen würdet und die sich direkt auf den Umgang mit android beziehen? Ist es sinnvoll mit der entwicklerseite direkt zu lernen?
Danke für eure Hilfe
Anbei mein code; außer dieser klasse gibt es noch eine für Fragen, Antworten, einer Zufallszahl und einer prüfungsklasse die mir sagt ob die richtige auswahl getroffen wurde.
[Java]
package com.quizapp.quizapp;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import java.util.*;
import android.view.View.*;
public class MainActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Bekomme Buttons und objekte = = = = = = = = = = = = =
final Button buttonol =(Button) findViewById(R.id.buttonol);
final Button buttonor =(Button) findViewById(R.id.buttonor);
final Button buttonul =(Button) findViewById(R.id.buttonul);
final Button buttonur =(Button) findViewById(R.id.buttonur);
TextView meinefragebox =(TextView) findViewById(R.id.fragetext);
fragen meinefrage = new fragen();
zuzahlen zufallszahl = new zuzahlen();
meinefrage.setfragen();
antworten antworter = new antworten();
antworter.setant();
final pruefen pruefung = new pruefen();
boolean spiellaeuft = true;
final TextView ergebntxt = (TextView) findViewById(R.id.ergebnisanzeige);
final TextView punktzahl =(TextView) findViewById(R.id.pktzahl);
int punkte = 0;
// = = = = = = = = = = = = = = = = = = = = = = = = =
int bu;
bu = meinefrage.anzahlfragen();
int zahl = zufallszahl.getzahl(bu);
String diefrage = meinefrage.getfragen(zahl);
meinefragebox.setText(diefrage);
int zuege = 1;
//while(spiellaeuft){
//if(zuege>0){
//=== Antworten b3kommen
ArrayList<String> dieantworten = new ArrayList<String>();
dieantworten = antworter.getantworten(zahl);
final String richtigeantwort = dieantworten.get(0);
String falschantwort1 = dieantworten.get(1);
String falschantwort2 = dieantworten.get(2);
String falschantwort3 = dieantworten.get(3);
int min = 0;
int max = 4;
int wielange = 4;
// Den Buttons die Antwortmöglichkeiten zuweisen
int position = (int) (Math.random()*max);
max = max-1;
buttonol.setText(dieantworten.get(position));
dieantworten.remove(position);
//===
position = (int) (Math.random()*max);
max = max-1;
buttonor.setText(dieantworten.get(position));
dieantworten.remove(position);
//===
position = (int) (Math.random()*max);
max = max-1;
buttonul.setText(dieantworten.get(position));
dieantworten.remove(position);
//===
position = (int) (Math.random()*max);
max = max-1;
buttonur.setText(dieantworten.get(position));
dieantworten.remove(position);
int zt = 5;
//========Den Buttons ihren zweck geben
int solange = 1;
ergebntxt.setText("");
buttonol.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View p1)
{
final String a = (String) buttonol.getText();
boolean istrichtig = pruefung.pruefdich(richtigeantwort, a);
if(istrichtig){
ergebntxt.setText("Die antwort war richtig!");
}else{
ergebntxt.setText("Leider Falsch");
}
}
});
buttonor.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View p1)
{
final String a = (String) buttonor.getText();
boolean istrichtig = pruefung.pruefdich(richtigeantwort, a);
if(istrichtig){
ergebntxt.setText("Die antwort war richtig!");
}else{
ergebntxt.setText("Leider Falsch");
}
}
});
buttonul.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View p1)
{
final String a = (String) buttonul.getText();
boolean istrichtig = pruefung.pruefdich(richtigeantwort, a);
if(istrichtig){
ergebntxt.setText("Die antwort war richtig!");
}else{
ergebntxt.setText("Leider Falsch");
}
}
});
buttonur.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View p1)
{
final String a = (String) buttonur.getText();
boolean istrichtig = pruefung.pruefdich(richtigeantwort, a);
if(istrichtig){
ergebntxt.setText("Die antwort war richtig!");
}else{
ergebntxt.setText("Leider Falsch");
}
}
});
//_____________
if(ergebntxt.getText().equals("Leider Falsch")){
solange = 0;
zt =0;
}else if(ergebntxt.getText().equals("Die antwort war richtig!")){
zt = 0;
solange = 0;
}
l
};
//ergebntxt.setText("Spiel zuende");
//}//ende der while spiellaeuft schleife
}[/code]
Zuletzt bearbeitet: