Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android问答应用程序,返回和下一步按钮问题_Java_Android - Fatal编程技术网

Java Android问答应用程序,返回和下一步按钮问题

Java Android问答应用程序,返回和下一步按钮问题,java,android,Java,Android,我正在开发一个测验应用程序,我面临着“后退”和“下一步”按钮的问题。情况如下: 我总共有40个问题,在java类的测验中,我初始化了一个整数rowID=1 W 当我在第一个位置时,按钮被禁用,但当我按下下一步时,它仍然保持禁用状态,下一步按钮也是如此 我有一个文本视图,显示当前问题的编号,如果我在问题编号40处,我再次按下next,它将变为41。它不应该走 这是我的密码: import android.app.AlertDialog; import android.app.Dialo

我正在开发一个测验应用程序,我面临着“后退”和“下一步”按钮的问题。情况如下:

  • 我总共有40个问题,在java类的测验中,我初始化了一个整数rowID=1

  • W 当我在第一个位置时,按钮被禁用,但当我按下下一步时,它仍然保持禁用状态,下一步按钮也是如此

  • 我有一个文本视图,显示当前问题的编号,如果我在问题编号40处,我再次按下next,它将变为41。它不应该走
  • 这是我的密码:

       import android.app.AlertDialog;
       import android.app.Dialog;
       import android.content.ContentValues;
       import android.database.Cursor;
       import android.database.sqlite.SQLiteDatabase;
       import android.graphics.drawable.ColorDrawable;
       import android.net.Uri;
       import android.os.Bundle;
       import android.os.CountDownTimer;
       import android.support.design.widget.FloatingActionButton;
       import android.support.v7.app.AppCompatActivity;
       import android.support.v7.widget.Toolbar;
       import android.text.Html;
       import android.view.MenuItem;
       import android.view.View;
       import android.widget.Button;
       import android.widget.RadioGroup;
       import android.widget.TextView;
       import android.widget.Toast;
    
       import com.afollestad.materialdialogs.MaterialDialog;
       import com.google.gson.Gson;
       import com.google.gson.GsonBuilder;
       import com.shawnlin.numberpicker.NumberPicker;
    
       import org.json.JSONObject;
    
       import java.util.List;
       import java.util.concurrent.TimeUnit;
    
       import retrofit2.Call;
       import retrofit2.Callback;
    
       import static autoshkolla.almotech.org.autoshkollastudenti.R.id.testi;
    
       public class Activity_Quiz extends AppCompatActivity {
           SaveData saveData;
           String ApiKey;
           Dialog dialog;
           Gson gson;
           Button next_question, previous_question;
           int quizID, questionID, trueanswer, useranswer;
           int rowID = 1;
           String question, filename, mime, image;
           SQLiteDatabase db;
           TextView viewquestion, question_number, user_email, user_id, quiz_number;
           QuizAdapter quizAdapter;
           private AllLectureAdapter adapter;
           DbProductModel dbProductModel;
           List < Quiz_Data > lecture;
           RadioGroup my_answer;
    
           NumberPicker numberPicker;
           Button start_timer, stop_timer;
           MyCountDownTimer myCountDownTimer;
           TextView koha;
    
           @Override
           protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.activity__quiz);
               Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
               setSupportActionBar(toolbar);
    
               getSupportActionBar().setDisplayHomeAsUpEnabled(true);
               getSupportActionBar().setHomeButtonEnabled(false);
               getSupportActionBar().setTitle(Html.fromHtml("<font color='#FFFFFF'><b>QUIZ</b></font>"));
               saveData = new SaveData(getApplication());
               gson = new GsonBuilder().create();
               ApiKey = "bearer " + saveData.getAutoUserToken();
    
               if (!saveData.getQuizStatus().equalsIgnoreCase("start")) {
                   myCountDownTimer = new MyCountDownTimer(2400000, 1000);
                   myCountDownTimer.start();
                   loading();
                   generate_quiz(ApiKey);
                   saveData.setQuizStatus("in_progress");
    
               }
    
               question_number = (TextView) findViewById(R.id.questionnumber);
               user_email = (TextView) findViewById(R.id.email);
               user_id = (TextView) findViewById(R.id.ID);
               quiz_number = (TextView) findViewById(testi);
               user_email.setText("Email : " + saveData.getAutoUserEmail());
               user_id.setText("ID : " + saveData.getAutoUserId() + "");
    
               next_question = (Button) findViewById(R.id.nextbtn);
               previous_question = (Button) findViewById(R.id.prevbtn);
               viewquestion = (TextView) findViewById(R.id.question);
               my_answer = (RadioGroup) findViewById(R.id.useranswer);
               final QuizSendModel results = new QuizSendModel();
    
               koha = (TextView) findViewById(R.id.time);
    
               if (rowID > 1 && rowID < 40) {
                   previous_question.setEnabled(true);
                   next_question.setEnabled(true);
               } else if (rowID == 40) {
                   next_question.setEnabled(false);
               } else if (rowID == 1) {
                   previous_question.setEnabled(false);
               }
    
    
               FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.gotoquestion);
               fab.setOnClickListener(new View.OnClickListener() {
                   @Override
                   public void onClick(View view) {
    
                       final Dialog dialog = new Dialog(Activity_Quiz.this);
                       dialog.setContentView(R.layout.questions);
                       dialog.setCancelable(true);
                       dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
                       Button shiko = (Button) dialog.findViewById(R.id.shikopyetje);
                       numberPicker = (NumberPicker) dialog.findViewById(R.id.number_picker);
    
                       dialog.show();
    
                       /* Window window = dialog.getWindow();
                        window.setLayout(400, 600);*/
    
                       shiko.setOnClickListener(new View.OnClickListener() {
                           @Override
                           public void onClick(View v) {
    
                               question_number.setText(String.valueOf(numberPicker.getValue()) + "/40");
                               String[] proj = {
                                   UsersProvider.QUESTION,
                                   UsersProvider.USER_ANSWER
                               };
                               String[] args = {
                                   String.valueOf(numberPicker.getValue())
                               };
                               Cursor c = getContentResolver().query(UsersProvider.CONTENT_URI, proj, UsersProvider.ID_ROW + " = ?", args, null);
                               if (c.moveToFirst()) {
                                   do {
    
                                       viewquestion.setText(c.getString(c.getColumnIndex(UsersProvider.QUESTION)));
                                       String uswanswradio = c.getString(c.getColumnIndex(UsersProvider.USER_ANSWER));
    
                                       if (uswanswradio == null) {
                                           my_answer.clearCheck();
                                       } else if (uswanswradio.equalsIgnoreCase("0")) {
                                           my_answer.check(R.id.radioJO);
                                       } else if (uswanswradio.equalsIgnoreCase("1")) {
                                           my_answer.check(R.id.radioPO);
                                       }
                                   } while (c.moveToNext());
                               }
                               dialog.dismiss();
                           }
                       });
                   }
               });
    
               viewquestion.setOnClickListener(new View.OnClickListener() {
                   @Override
                   public void onClick(View view) {
                       Cursor c = getContentResolver().query(UsersProvider.CONTENT_URI, null, null, null, null);
                       if (c.moveToFirst()) {
                           do {
                               /*Toast.makeText(getApplicationContext()," "+c.getString(c.getColumnIndex(UsersProvider.NAME))+", "+c.getString(c.getColumnIndex(UsersProvider.ADDRESS)),Toast.LENGTH_LONG).show();
                               System.out.println("emri : "+c.getString(c.getColumnIndex(UsersProvider.NAME))+" address : "+c.getString(c.getColumnIndex(UsersProvider.ADDRESS)));*/
                               results.setId_question(c.getString(c.getColumnIndex(UsersProvider.ID_QUESTION)));
                               results.setUser_answer(c.getString(c.getColumnIndex(UsersProvider.USER_ANSWER)));
                               System.out.println("pyetja : " + results.getId_question());
                               System.out.println("uans : " + results.getUser_answer());
                           } while (c.moveToNext());
                       }
                   }
               });
    
               my_answer.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
    
                   public void onCheckedChanged(RadioGroup group,
                       int checkedId) {
                       if (checkedId == R.id.radioPO) {
                           useranswer = 1;
                       } else if (checkedId == R.id.radioJO) {
                           useranswer = 0;
                       }
                       ContentValues values = new ContentValues();
                       values.put(UsersProvider.USER_ANSWER, useranswer);
                       String row = String.valueOf(rowID);
                       String[] whereArgs = {
                           row
                       };
                       getContentResolver().update(UsersProvider.CONTENT_URI, values, UsersProvider.ID_ROW + " =? ", whereArgs);
                   }
               });
    
               previous_question.setOnClickListener(new View.OnClickListener() {
                   @Override
                   public void onClick(View v) {
                       rowID = rowID - 1;
    
                       question_number.setText(rowID + "/40");
                       String[] proj = {
                           UsersProvider.QUESTION,
                           UsersProvider.USER_ANSWER
                       };
                       String[] args = {
                           String.valueOf(rowID)
                       };
                       Cursor c = getContentResolver().query(UsersProvider.CONTENT_URI, proj, UsersProvider.ID_ROW + " = ?", args, null);
                       if (c.moveToFirst()) {
                           do {
    
                               viewquestion.setText(c.getString(c.getColumnIndex(UsersProvider.QUESTION)));
    
                               String uswanswradio = c.getString(c.getColumnIndex(UsersProvider.USER_ANSWER));
                               System.out.println("pergjigjeeuserit : " + c.getString(c.getColumnIndex(UsersProvider.USER_ANSWER)));
                               if (uswanswradio == null) {
                                   my_answer.clearCheck();
                               } else if (uswanswradio.equalsIgnoreCase("0")) {
                                   my_answer.check(R.id.radioJO);
                               } else if (uswanswradio.equalsIgnoreCase("1")) {
                                   my_answer.check(R.id.radioPO);
                               }
                           } while (c.moveToNext());
                       }
                   }
               });
    
               next_question.setOnClickListener(new View.OnClickListener() {
                   @Override
                   public void onClick(View v) {
    
                       my_answer.clearCheck();
                       rowID = rowID + 1;
    
                       question_number.setText(rowID + "/40");
                       String[] proj = {
                           UsersProvider.QUESTION,
                           UsersProvider.USER_ANSWER
                       };
                       String[] args = {
                           String.valueOf(rowID)
                       };
                       Cursor c = getContentResolver().query(UsersProvider.CONTENT_URI, proj, UsersProvider.ID_ROW + " = ?", args, null);
                       if (c.moveToFirst()) {
                           do {
    
                               viewquestion.setText(c.getString(c.getColumnIndex(UsersProvider.QUESTION)));
                               String uswanswradio = c.getString(c.getColumnIndex(UsersProvider.USER_ANSWER));
                               if (uswanswradio == null) {
                                   my_answer.clearCheck();
                               } else if (uswanswradio.equalsIgnoreCase("0")) {
                                   my_answer.check(R.id.radioJO);
                               } else if (uswanswradio.equalsIgnoreCase("1")) {
                                   my_answer.check(R.id.radioPO);
                               }
                           } while (c.moveToNext());
                       }
    
                   }
               });
    
               String[] proj = {
                   UsersProvider.QUESTION
               };
               String[] args = {
                   String.valueOf(1)
               };
               Cursor c = getContentResolver().query(UsersProvider.CONTENT_URI, proj, UsersProvider.ID_ROW + " = ?", args, null);
               if (c.moveToFirst()) {
                   do {
                       rowID = 1;
    
                       viewquestion.setText(c.getString(c.getColumnIndex(UsersProvider.QUESTION)));
                   } while (c.moveToNext());
               }
           }
    
           public void generate_quiz(String APIKEY) {
               API api = APIClient.getApi(APIKEY);
               Call < Quiz > totclient = api.quiz();
               totclient.enqueue(new Callback < Quiz > () {
                   @Override
                   public void onResponse(Call < Quiz > call, retrofit2.Response < Quiz > response) {
                       dialog.dismiss();
                       // Log.d(TAG, "Succes:" + response.body().isError());
                       JSONObject obj = new JSONObject();
                       System.out.println("AllLectures:" + gson.toJson(response.body()));
                       System.out.println("quiz id:" + gson.toJson(response.body().getQuizNumber()));
                       quiz_number.setText("Testi : " + gson.toJson(response.body().getQuizNumber()));
                       if (!gson.toJson(response.body()).equalsIgnoreCase("null")) {
                           if (gson.toJson(response.body().getError()).equalsIgnoreCase("false")) {
                               ContentValues values = new ContentValues();
                               getContentResolver().delete(UsersProvider.CONTENT_URI, null, null);
                               lecture = response.body().getData();
    
                               final List < Quiz_Data > movies = response.body().getData();
    
                               for (int i = 0; i < movies.size(); i++) {
                                   quizID = response.body().getQuizNumber();
                                   questionID = response.body().getData().get(i).getId();
                                   question = response.body().getData().get(i).getQuestion();
                                   trueanswer = response.body().getData().get(i).getTrueAnswer();
                                   filename = response.body().getData().get(i).getOriginalFilename();
                                   mime = response.body().getData().get(i).getMime();
                                   image = response.body().getData().get(i).getImage();
    
                                   values.put(UsersProvider.QUESTION, question);
                                   values.put(UsersProvider.ID_ROW, i + 1);
                                   values.put(UsersProvider.ID_QUESTION, questionID);
                                   values.put(UsersProvider.TRUE_ANSWER, trueanswer);
                                   //  values.put(UsersProvider.USER_ANSWER,-1);
                                   values.put(UsersProvider.ORIGINAL_FILENAME, filename);
                                   values.put(UsersProvider.MIME, mime);
                                   values.put(UsersProvider.IMAGE, image);
                                   Uri uri = getContentResolver().insert(UsersProvider.CONTENT_URI, values);
                                   // Toast.makeText(getApplicationContext(),uri.toString(),Toast.LENGTH_LONG).show();
                                   System.out.println("URI :" + uri);
    
                               }
    
    
                           } else {
    
                           }
                       } else {
                           Toast.makeText(getApplicationContext(), "Sesioni juaj ka skaduar ju duhet te rilogoheni", Toast.LENGTH_LONG).show();
                       }
                   }
    
                   @Override
                   public void onFailure(Call < Quiz > call, Throwable t) {
                       dialog.dismiss();
                   }
               });
           }
    
           public void loading() {
               dialog = new MaterialDialog.Builder(Activity_Quiz.this)
                   .title("Duke hyre ne sistem!")
                   .content("Ju lutem prisni...")
                   .progress(true, 0)
                   .show();
           }
    
           @Override
           public boolean onOptionsItemSelected(MenuItem item) {
               //handle the click on the back arrow click
               switch (item.getItemId()) {
                   case android.R.id.home:
                       finish();
                       return true;
                   default:
                       return super.onOptionsItemSelected(item);
               }
           }
    
    
           public class MyCountDownTimer extends CountDownTimer {
    
               public MyCountDownTimer(long millisInFuture, long countDownInterval) {
                   super(millisInFuture, countDownInterval);
               }
    
               @Override
               public void onTick(long millisUntilFinished) {
    
                   int progress = (int)(millisUntilFinished / 10000);
    
    
                   koha.setText("" + String.format("%d : %d",
                       TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
                       TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
                       TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
               }
    
               @Override
               public void onFinish() {
                   //finish();
                   saveData.setQuizStatus("start");
                   Toast.makeText(getApplicationContext(), "Koha mbaroi", Toast.LENGTH_LONG).show();
               }
           }
       }
    
    导入android.app.AlertDialog;
    导入android.app.Dialog;
    导入android.content.ContentValues;
    导入android.database.Cursor;
    导入android.database.sqlite.SQLiteDatabase;
    导入android.graphics.drawable.ColorDrawable;
    导入android.net.Uri;
    导入android.os.Bundle;
    导入android.os.CountDownTimer;
    导入android.support.design.widget.FloatingActionButton;
    导入android.support.v7.app.AppActivity;
    导入android.support.v7.widget.Toolbar;
    导入android.text.Html;
    导入android.view.MenuItem;
    导入android.view.view;
    导入android.widget.Button;
    导入android.widget.RadioGroup;
    导入android.widget.TextView;
    导入android.widget.Toast;
    导入com.afollestad.materialdialogs.MaterialDialog;
    导入com.google.gson.gson;
    导入com.google.gson.GsonBuilder;
    导入com.shawnlin.numberpicker.numberpicker;
    导入org.json.JSONObject;
    导入java.util.List;
    导入java.util.concurrent.TimeUnit;
    2.电话;;
    2.回拨;
    导入静态autoshkolla.almotech.org.autoshkollastudenti.R.id.testi;
    公开课活动{
    保存数据保存数据;
    字符串键;
    对话;
    Gson-Gson;
    按钮“下一个问题”、“上一个问题”;
    int quizID、问号、真实答案、用户答案;
    int-rowID=1;
    字符串问题、文件名、mime、图像;
    sqlitedb数据库;
    text查看问题、问题编号、用户电子邮件、用户id、测验编号;
    快适应快适应;
    专用全向适配器;
    DbProductModel DbProductModel;
    列出讲座;
    将我的答案分组;
    NumberPicker NumberPicker;
    按钮启动定时器、停止定时器;
    MyCountDownTimer MyCountDownTimer;
    TextView-koha;
    @凌驾
    创建时受保护的void(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity\uuuu测验);
    Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
    设置支持操作栏(工具栏);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(false);
    getSupportActionBar().setTitle(Html.fromHtml(“测验”);
    saveData=newsavedata(getApplication());
    gson=new GsonBuilder().create();
    ApiKey=“bearer”+saveData.getAutoUserToken();
    如果(!saveData.getQuizStatus().equalsIgnoreCase(“开始”)){
    myCountDownTimer=新的myCountDownTimer(24000001000);
    myCountDownTimer.start();
    加载();
    生成测验(ApiKey);
    saveData.setQuizStatus(“进行中”);
    }
    问题编号=(TextView)findViewById(R.id.questionnumber);
    用户_email=(TextView)findViewById(R.id.email);
    用户_id=(TextView)findViewById(R.id.id);
    测验编号=(TextView)findViewById(testi);
    user_email.setText(“电子邮件:+saveData.getAutoUserEmail());
    user_id.setText(“id:+saveData.getAutoUserId()+”);
    下一个问题=(按钮)findViewById(R.id.nextbtn);
    上一个问题=(按钮)findViewById(R.id.prevbtn);
    viewquestion=(TextView)findViewById(R.id.question);
    my_answer=(放射组)findViewById(R.id.useranswer);
    最终QuizSendModel结果=新QuizSendModel();
    koha=(TextView)findViewById(R.id.time);
    如果(rowID>1&&rowID<40){
    上一个问题。设置启用(true);
    下一个问题:setEnabled(true);
    }else if(rowID==40){
    下一个问题:setEnabled(false);
    }else if(rowID==1){
    上一个问题。setEnabled(false);
    }
    FloatingActionButton fab=(FloatingActionButton)findViewById(R.id.gotoquestion);
    fab.setOnClickListener(新视图.OnClickListener(){
    @凌驾
    公共void onClick(视图){
    最终对话=新对话(活动\u测验。此);
    setContentView(R.layout.questions);
    对话框。可设置可取消(true);
    dialog.getWindow().setBackgroundDrawable(新的ColorDrawable(android.graphics.Color.TRANSPARENT));
    Button shiko=(Button)dialog.findViewById(R.id.shikopyetje);
    numberPicker=(numberPicker)dialog.findviewbyd(R.id.number\u选择器);
    dialog.show();
    /*Window=dialog.getWindow();
    窗口设置布局(400600)*/
    shiko.setOnClickListener(新视图.OnClickListener(){
    @凌驾
    公共void onClick(视图v){
    question_number.setText(String.valueOf(numberPicker.getValue())+“/40”);
    字符串[]项目={
    UsersProvider.QUESTION,
    UsersProvider.USER\u答案
    };
    字符串[]args={
    String.valueOf(numberPicker.getValue())
    };
    光标c=g
    
    private void updateButtonState() {
        if (rowID > 1 && rowID < 40) {
            previous_question.setEnabled(true);
            next_question.setEnabled(true);
        } else if (rowID == 40) {
            next_question.setEnabled(false);
        } else if (rowID == 1) {
            previous_question.setEnabled(false);
        }
    }
    
    @Override
    public void onClick(View v) {
        rowID = rowID - 1; // + 1 if next button
        updateButtonState();
        ...
    }