Aufgaben in "Quiz" wechseln

  • Antworten:1
Ben K.
  • Forum-Beiträge: 11

01.08.2014, 14:33:25 via Website

Hallo,
ich bin dabei ein Quiz zu programmieren. Ich habe nun das Prinzip geschrieben und es läuft (1. QC).
Ihr seht, es gibt eine Frage (und später noch ein Bild zu jeder Frage) und eine "Antwort" zu der Frage. Diese Antwort ist eine Zahl. Der Spieler Tippt die Zahl und wenn er plus minus 10% genau an sie herankommt ist er weiter.

Mein Problem dabei ist nun, dass ich nicht weis wie ich die Aufgaben :Frage mit Bild und Lösung(Zahl): wechseln soll. Ich habe ein Tutorial zu einem Quiz gemacht das ich gut finde und wo auch eine Struktur die ich übernehmen würde drin ist. Zunächst wäre das gut?(unterer Quellcode) wenn dann kann mir jemand sagen wie ich diese beiden Quellcodes mit einander verbinde? Ich bin schon bei einem Versuch daran gescheitert.
Oder sollte ich es gleich anders machen? Mit sql Datenbank zumal ich sowieso später eine Random Fragen Wahl bevorzugen würde. Kennt jemand gute Tutorials in denen ich dass erlernen könnte?

Mein Code:

package com.example.converter2;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity implements OnClickListener {

Button btn;
EditText et;
TextView tvresult;
TextView tvcount;
int Count;
double Tipp;
double Ergebnis;
double Lösung;
double Lösungpro;
double GegenLösung;
double Ergebnispro;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btn = (Button)findViewById(R.id.btn);
    et = (EditText)findViewById(R.id.et);
    tvresult = (TextView)findViewById(R.id.tvresult);
    tvcount = (TextView)findViewById(R.id.tvcount);

    btn.setOnClickListener(this);   
}

@Override
public void onClick(View v) {

    if (TextUtils.isEmpty(et.getText().toString()))
     {
return;

}
double Lösung = 400; // Diese Variable ist die Lösung die für jede Aufgabe benötigt wird

    double Lösungpro = Lösung/10;

    double Tipp = Double.valueOf(et.getText().toString());

    double Ergebnis =  Lösung-Tipp;

    double GegenLösung = Lösung/-10;

    double Ergebnispro = Ergebnis-Lösung*100;

    if (Ergebnis <= L&ouml;sungpro &amp;&amp; Ergebnis >= GegenL&ouml;sung){

        tvresult.setText(Ergebnis+
        "Du bist weiter");
    }
    else{

        tvresult.setText(Ergebnis+
        "Du bist nicht weiter"+
        "Dein Tipp:"+Tipp);

    }

    if ((Ergebnis <= L&ouml;sungpro &amp;&amp; Ergebnis >= GegenL&ouml;sung)) {
        Count = Count + 1;
        tvcount.setText(Integer.toString(Count));
    }

    else {
        tvcount.setText(Integer.toString(Count = 0));
    }

};

}

Quiz Vorlagen:

package com.example.quiz;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

private int currentQuestion;
private String[] questions;
private String[] answers;
private Button answerButton;
private Button questionButton;
private TextView questionView;
private TextView answerView;
private EditText answerText;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    init();
}

public void init() {
    questions = new String[] { "L&ouml;sung ist x",
            "L&ouml;sung ist A?","L&ouml;sung ist B","L&ouml;sung ist C" };
    answers = new String[] { "x", "A", "B" };
    currentQuestion = -1;
    answerButton = (Button) findViewById(R.id.AnswerButton);
    questionButton = (Button) findViewById(R.id.QuestionButton);
    questionView = (TextView) findViewById(R.id.QuestionTextView);
    answerView = (TextView) findViewById(R.id.AnswerTextView);
    answerText = (EditText) findViewById(R.id.AnswerText);
    answerButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            if (TextUtils.isEmpty(answerText.getText().toString()))
             {
        return;
    }
            checkAnswer();
        }
    });
    questionButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            showQuestion();
        }
    });
}

public void showQuestion() {
    currentQuestion++;
    if (currentQuestion == questions.length)
        currentQuestion = 0;
    questionView.setText(questions[currentQuestion]);
    answerView.setText("");
    answerText.setText("");
}


public boolean isCorrect(String answer) {
    return (answer.equalsIgnoreCase(answers[currentQuestion]));
}


public void checkAnswer() {
    String answer = answerText.getText().toString();
    if (isCorrect(answer))
        answerView.setText("You're right!");
    else
        answerView.setText("Sorry, the correct answer is "
                + answers[currentQuestion]);
}

}

Sorry dass es so viel ist!
Über ANtworten würde ich micht freuen
LG Ben

Antworten
Micha Roth
  • Forum-Beiträge: 26

14.08.2014, 22:57:26 via Website

Hey,

ich verstehe das Problem nicht ganz.
Was genau soll das heißen:

Mein Problem dabei ist nun, dass ich nicht weis wie ich die Aufgaben :Frage mit Bild und Lösung(Zahl): wechseln soll

Wenn ich dich richtig verstehe, weißt du nicht, wie du die nächste Frage anzeigen lassen sollst.
Du kannst z.B. einstellen, dass per Klick einfach eine neue Frage erscheint. Bei jedem Klick wird dann die neue Frage aus deiner SQLite-Tabelle gelesen. Dafür überschreibst du einfach die alten Werte.

Die Antwort speicherst du falls gewünscht in einer ArrayList/SQLite-Tabelle ab.

Ich würde übrigens nicht versuchen Code-Strukturen von anderen online Tutorials zu übernehmen - klar Code snippets sind ja völlig in Ordnung, aber die ganze Struktur? Wenn du sie nicht verstehst, schaff lieber was eigenes, dann blickst du auch besser durch ;)

Grüße von

Stirnraten auf Androidpit

Antworten