Форум программистов, компьютерный форум, киберфорум
Наши страницы

Викторина - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Ошибка с формированием ListView http://www.cyberforum.ru/android-dev/thread1521965.html
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? ПРоблема в том, что при переоде между активити возникает ошибка и прога вылетает. Скорее всего дело в LIstView, которое находется...
Программирование Android TextToSpeech в фоновом режиме Здравствуйте. Пишу первое не простое приложение, база данных и прочее работают остался последний штрих, нужно сделать так, чтобы через определенные промежутки времени читались куски текста, что-то... http://www.cyberforum.ru/android-dev/thread1521845.html
Программирование Android Чтение файла с системной директории
Помогите с чтением файла с системной директории: /dev/input/event0 Пробовал по всякому так: try{ Process process = Runtime.getRuntime().exec("su"); }catch(Exception ex) { ...
Программирование Android Как правильно составить цикл который выполняет каждую команду с разной паузой - Android
Мне нужно при нажатии кнопки, допустим button1 и button2 выполнять следующее: При нажатии на button1 Отправлять следующие команды: addCRC(new byte{1, 0x5, 11, 5 ,0, 0}); //10 сек addCRC(new...
Программирование Android При переходе между активити возникает ошибка http://www.cyberforum.ru/android-dev/thread1521735.html
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Дело в том, что при вызове активити в моем приложении возникает ошибка и программа вылетает. Возможно дело не в неправильном...
Программирование Android Анимация Fragment Здравствуйте, такой вопрос. как прикрутить эту анимацию: <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:fromAlpha="0.0"... подробнее

Показать сообщение отдельно
Pepsi4ever
0 / 0 / 0
Регистрация: 30.08.2015
Сообщений: 7
14.10.2015, 11:14  [ТС]
Ребят пока тренируюсь с приложением Викториной. Покаместь без Sqlite и Mysql. Тут такая проблема. Вычитал на сайте, как написать викторину. Попробовал эту программу, она работает. Но, рисовали ее вручную через Absolytelayout. Я рисовал все автоматом через Relativelayout. У меня выбивает ошибку в проге. Помогите, пожалуйста присвоить вопросы и ответы к Textview и Button.

Программа с сайта рабочая
Java
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
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 MainActivity extends Activity implements OnClickListener {
        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();
    }
}
моя нерабочая прога
Java
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
public class MainActivity extends Activity {
    private Button button;
    private TextView Question;
    private TypedArray Base;
    private Button[] Answers=new Button[4];
    private static final int QUESTIONS = 8;
    private static final int VARIANTS = 4;
    private static final char DELIMITER = '/';
    private String[] Ques = new String[QUESTIONS];
    private String[][] AnsMatrix = new String[VARIANTS][QUESTIONS];
    private int[] RightAnswers = new int[QUESTIONS];
    private int current_right = 0;
    private int time = 0;
    private int total_time = 3;
    private int right = 0;
    private int wrong = 0;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.A);
        button = (Button) findViewById(R.id.B);
        button = (Button) findViewById(R.id.C);
        button = (Button) findViewById(R.id.D);
        Question = (TextView) findViewById(R.id.Question);
        LoadQuestions();
        LoadQuestion();
 
    }
 
    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 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;
            }
        }
 
        return str.substring(index1+2, index2+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)));
        }
    }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru