-1
我正在開發測驗應用程序,並且正面臨着後退和下一個按鈕的問題。這裏的情況是:Android測驗應用程序,後退按鈕和下一個按鈕問題
我有總共40個問題,而在java類測驗i的初始化的整數ROWID = 1
W¯¯ 母雞我在第一位置的按鈕是禁用的,但是當我按next時它仍然是禁用的,下一個按鈕同樣的事情
- 我有一個TextView,顯示當前問題的編號,如果我在問題編號40,然後再按下一個,它去了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();
}
}
}
謝謝!
非常感謝您! –