1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
| package com.example.ouatquiz;
import android.app.Activity;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.Toast;
public class QuizActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
private AbsoluteLayout Abs;
private Button Question;
private Button[] Answers=new Button[4];
private double width;
private double height;
private static final int QUESTIONS=8;
private static final int VARIANTS=4;
private static final char DELIMITER='/';
private String[][] AnsMatrix=new String[VARIANTS][QUESTIONS];
private int[] RightAnswers=new int[QUESTIONS];
private String[] Ques=new String[QUESTIONS];
private TypedArray Base;
private int time=0;
private int total_time=3;
private int right=0;
private int wrong=0;
private int current_right=0;
private AbsoluteLayout.LayoutParams[] params=new AbsoluteLayout.LayoutParams[VARIANTS+1];
@Override
public void onCreate(Bundle savedInstanceState) {
try{
super.onCreate(savedInstanceState);
Abs=new AbsoluteLayout(this);
setContentView(Abs);
Display display = getWindowManager().getDefaultDisplay();
width=display.getWidth();
height=display.getHeight();
Question= new Button(this);
params[0]=new AbsoluteLayout.LayoutParams(
(int)width,(int)height/4,0,0
);
Question.setLayoutParams(params[0]);
Abs.addView(Question);
Question.setOnClickListener(this);
//
for (int i=1;i<VARIANTS+1;i++){
int k=i%2;
int m;
if (i<3) m=1;
else{
m=2;
}
Answers[i-1]= new Button(this);
params[i]=new AbsoluteLayout.LayoutParams(
(int)width/2,(int)height/4,(int)(k*width/2),(int)(m*height/4)
);
Answers[i-1].setLayoutParams(params[i]);
Abs.addView(Answers[i-1]);
Answers[i-1].setOnClickListener(this);
}
//getSubstringBetweenDelimiters(2,3,"/Question1/Variant11/Variant12/Variant13/Variant14/Answer1/");
//Toast.makeText(this, getSubstringBetweenDelimiters(5,6,"/Question1/Variant11/Variant12/Variant13/Variant14/Answer1/"), Toast.LENGTH_LONG).show();
LoadQuestions();
LoadQuestion();
}
catch(Exception e){
Toast.makeText(this, e+"", Toast.LENGTH_LONG).show();
}
}
private void LoadQuestion() {
int qs=(int)System.currentTimeMillis()%QUESTIONS;
Question.setText(Ques[qs]);
for (int i=0;i<VARIANTS;i++){
Answers[i].setText(AnsMatrix[i][qs]);
}
current_right=RightAnswers[qs]-1;
}
private void LoadQuestions(){
Resources res=getResources();
Base=res.obtainTypedArray(R.array.Questions);
for (int i=0;i<QUESTIONS;i++){
Ques[i]=getSubstringBetweenDelimiters(0,1,Base.getString(i));
for (int j=0;j<VARIANTS;j++){
AnsMatrix[j][i]=getSubstringBetweenDelimiters(j+1,j+2,Base.getString(i));
}
RightAnswers[i]=Integer.parseInt(getSubstringBetweenDelimiters(VARIANTS+1,VARIANTS+2,Base.getString(i)));
}
}
private String getSubstringBetweenDelimiters(int k, int m, String str){
int index1=0;
int index2=0;
int len=str.length();
int dels=0;
for (int i=0;i<len;i++){
if (str.charAt(i)==DELIMITER){
dels++;
}
if (dels==k){
index1=i;
}
if (dels==m){
index2=i;
}
}
//Toast.makeText(this, index1+" "+index2, Toast.LENGTH_LONG).show();
return str.substring(index1+2, index2+1);
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (arg0==Question){
wrong++;
}
else{
wrong++;
for (int i=0;i<VARIANTS;i++){
if (arg0==Answers[i]){
if (current_right==i){
wrong--;
right++;
}
}
}
}
time++;
LoadQuestion();
if (time==total_time){
Stats();
time=0;
right=0;
wrong=0;
}
}
private void Stats() {
// TODO Auto-generated method stub
double rating=Math.round(((double)right/((double)right+(double)wrong))*100);
String stat="";
stat+=getString(R.string.note1);
stat+=" "+right+" ";
stat+=getString(R.string.note2);
stat+=" "+total_time+". ";
stat+=getString(R.string.note3);
stat+=" "+(rating+"").substring(0,(rating+"").length()-2);
Toast.makeText(this, stat, Toast.LENGTH_LONG).show();
}
} |