私はクイズテストを作成しようとしています。質問フォームでは、ユーザーが回答をクリックすると3つのボタンが作成されます。同じレイアウトとJavaクラスを再起動するので、次の質問が表示されます。同じレイアウトを何度も繰り返すのは痛いので、この方法はあまり良くありません。では、同じレイアウトの質問を20回変えるようにコードを変更する方法は?私はwhile
関数を試しましたが、whileループを続行するためにユーザーがアクションを実行するのを待つコマンドがあれば、次の質問に進むためにボタンを押すのを待たずに動作します。ここに私のコードです:どのように最初にアクションを待つループを、アンドロイドで続けることができますか?
package dv.qtest.dvyzual;
import java.util.Random;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class startGame extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.startgame);
final MediaPlayer mp2 = MediaPlayer.create(this, R.raw.correct);
AnyDBAdapter eventsData = new AnyDBAdapter(getBaseContext());
eventsData.open();
myMenu.question = myMenu.question +1;
String qq = getRandomNumber();
Cursor c = eventsData.ExampleSelect(qq);
this.startManagingCursor(c);
eventsData.close(); final String h = c.getString(5); setQuestions(c);
final Button r1 = (Button)findViewById(R.id.b1);
r1.setOnClickListener (new View.OnClickListener() { public void onClick(View v) {
if ("1".equals(h)) {
r1.setBackgroundResource(R.drawable.buttonneocorrect);
myMenu.score = myMenu.score + 1;
mp2.start();
}
else {
r1.setBackgroundResource(R.drawable.buttonneowrong);
}
finish();
if (myMenu.question == 20) {
startActivity(new Intent("dv.qtest.dvyzual.QuizTestActivity.ENDQUIZGAME"));}
else {
startActivity(new Intent("dv.qtest.dvyzual.QuizTestActivity.STARTQUIZGAME"));
}
} }); final Button r2 = (Button)findViewById(R.id.b2);
r2.setOnClickListener (new View.OnClickListener() { public void onClick(View v) {
if ("2".equals(h)) {
r2.setBackgroundResource(R.drawable.buttonneocorrect);
myMenu.score = myMenu.score + 1;
}
else {
r2.setBackgroundResource(R.drawable.buttonneowrong);
}
finish();
if (myMenu.question == 20) {startActivity(new Intent("dv.qtest.dvyzual.QuizTestActivity.ENDQUIZGAME"));}
else {startActivity(new Intent("dv.qtest.dvyzual.QuizTestActivity.STARTQUIZGAME"));} } });
final Button r3 = (Button)findViewById(R.id.b3);
r3.setOnClickListener (new View.OnClickListener() { public void onClick(View v) {
if ("3".equals(h)) {
r3.setBackgroundResource(R.drawable.buttonneocorrect);
myMenu.score = myMenu.score + 1;
mp2.start();
}
else {
r3.setBackgroundResource(R.drawable.buttonneowrong);
}
finish();
if (myMenu.question == 20) {startActivity(new Intent("dv.qtest.dvyzual.QuizTestActivity.ENDQUIZGAME"));}
else {startActivity(new Intent("dv.qtest.dvyzual.QuizTestActivity.STARTQUIZGAME"));} } });
}
private String getRandomNumber(){
Random generator = new Random();
int n = 49;
n = generator.nextInt(n) +1;
String n1 = ""+n;
return n1;
}
private void setQuestions(Cursor c) {
TextView rscore = (TextView)findViewById(R.id.q1); rscore.setText("Score: " + myMenu.score + " Question: "
+ myMenu.question);
TextView r0 = (TextView)findViewById(R.id.textView1); r0.setText(c.getString(1));
Button r1 = (Button)findViewById(R.id.b1); r1.setText(c.getString(2));
Button r2 = (Button)findViewById(R.id.b2); r2.setText(c.getString(3));
Button r3 = (Button)findViewById(R.id.b3); r3.setText(c.getString(4));
} }
あなたは精通していますオブジェクト指向プログラミングと手順プログラミングとの違いは? – Joe
まあ、正直言って、私はこの言語に新しいので、私はあまりよく知られていないと私はコーディング中にいくつかの大きな間違いをするかもしれない。私は修正しなければならない多くの間違いを見ていますか? – NeoXRated
申し訳ありませんが、私はあなたのコードを見て時間がかかりませんでしたが、私はあなたの質問のJava(私の最初のオブジェクト指向プログラミング言語でした)でコーディングを開始する前に思った方法を認識しています。あなたのコードは大丈夫かもしれませんが、OOPの問題をコーディングして解決する方法を理解することが重要です。あなたはアンドロイドの中でどのような方法でコードをフリーズすることはありません(実際にはOSはあなたのアプリを殺すでしょう)。 – Joe