Improved GUI
This commit is contained in:
parent
da4c42cc26
commit
79f2e4e201
|
@ -176,8 +176,6 @@ public class SWADMain extends ExpandableListActivity {
|
|||
} else if(keyword.equals(getString(R.string.testsModuleLabel))) {
|
||||
activity = new Intent(getBaseContext(), Tests.class);
|
||||
startActivityForResult(activity, Global.TESTS_REQUEST_CODE);
|
||||
/*Toast.makeText(this, keyword + " en proceso de desarrollo", Toast.LENGTH_LONG)
|
||||
.show();*/
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
@ -25,11 +25,14 @@ import es.ugr.swad.swadroid.model.TestAnswer;
|
|||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.text.Html;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.CheckedTextView;
|
||||
import android.widget.ListView;
|
||||
|
||||
public class CheckedAnswersArrayAdapter extends ArrayAdapter<TestAnswer> {
|
||||
private Context context;
|
||||
|
@ -56,6 +59,8 @@ public class CheckedAnswersArrayAdapter extends ArrayAdapter<TestAnswer> {
|
|||
*/
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
CheckedTextView tt;
|
||||
final ListView lv = (ListView) parent;
|
||||
TestAnswer a = items.get(position);
|
||||
|
||||
if (convertView == null) {
|
||||
|
@ -63,7 +68,7 @@ public class CheckedAnswersArrayAdapter extends ArrayAdapter<TestAnswer> {
|
|||
convertView = vi.inflate(textViewResourceId, null);
|
||||
}
|
||||
|
||||
CheckedTextView tt = (CheckedTextView) convertView.findViewById(android.R.id.text1);
|
||||
tt = (CheckedTextView) convertView.findViewById(android.R.id.text1);
|
||||
if(answerType.equals("TF")) {
|
||||
if(a.getAnswer().equals("T")) {
|
||||
tt.setText(R.string.trueMsg);
|
||||
|
@ -74,6 +79,26 @@ public class CheckedAnswersArrayAdapter extends ArrayAdapter<TestAnswer> {
|
|||
tt.setText(Html.fromHtml(a.getAnswer()));
|
||||
}
|
||||
|
||||
if(lv.getChoiceMode() == ListView.CHOICE_MODE_SINGLE) {
|
||||
tt.setOnClickListener(new OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
CheckedTextView rb = (CheckedTextView) v;
|
||||
int childCount = lv.getChildCount();
|
||||
int itemPos = 0;
|
||||
boolean checked = rb.isChecked();
|
||||
|
||||
for(int i=0; i<childCount; i++) {
|
||||
lv.setItemChecked(i, false);
|
||||
if(rb == lv.getChildAt(i)) {
|
||||
itemPos = i;
|
||||
}
|
||||
}
|
||||
|
||||
lv.setItemChecked(itemPos, !checked);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if(evaluated) {
|
||||
tt.setOnClickListener(null);
|
||||
|
||||
|
|
|
@ -38,6 +38,8 @@ import android.text.InputType;
|
|||
import android.util.Log;
|
||||
import android.util.SparseBooleanArray;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckedTextView;
|
||||
|
@ -105,6 +107,10 @@ public class TestsMake extends Module {
|
|||
* Click listener for courses dialog cancel button
|
||||
*/
|
||||
private OnClickListener coursesDialogNegativeClickListener;
|
||||
/**
|
||||
* Click listener for courses dialog cancel button
|
||||
*/
|
||||
private OnItemClickListener tagsAnswersTypeItemClickListener;
|
||||
/**
|
||||
* Adapter for answer TF questions
|
||||
*/
|
||||
|
@ -188,6 +194,7 @@ public class TestsMake extends Module {
|
|||
tagsAdapter = new TagsArrayAdapter(this, R.layout.list_item_multiple_choice, allTagsList);
|
||||
checkBoxesList.setAdapter(tagsAdapter);
|
||||
checkBoxesList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
|
||||
checkBoxesList.setOnItemClickListener(tagsAnswersTypeItemClickListener);
|
||||
|
||||
acceptButton = (Button)findViewById(R.id.testTagsAcceptButton);
|
||||
acceptButton.setOnClickListener(new View.OnClickListener() {
|
||||
|
@ -241,6 +248,7 @@ public class TestsMake extends Module {
|
|||
R.array.testAnswerTypesNames, R.layout.list_item_multiple_choice);
|
||||
checkBoxesList.setAdapter(answerTypesAdapter);
|
||||
checkBoxesList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
|
||||
checkBoxesList.setOnItemClickListener(tagsAnswersTypeItemClickListener);
|
||||
|
||||
acceptButton = (Button)findViewById(R.id.testAnswerTypesAcceptButton);
|
||||
acceptButton.setOnClickListener(new View.OnClickListener() {
|
||||
|
@ -396,10 +404,12 @@ public class TestsMake extends Module {
|
|||
}
|
||||
|
||||
questionScore = test.getQuestionScore(pos);
|
||||
if(questionScore >= 0.5) {
|
||||
if(questionScore > 0) {
|
||||
score.setTextColor(getResources().getColor(R.color.green));
|
||||
} else {
|
||||
} else if(questionScore < 0) {
|
||||
score.setTextColor(getResources().getColor(R.color.red));
|
||||
} else {
|
||||
score.setTextColor(Color.BLACK);
|
||||
}
|
||||
|
||||
score.setText(df.format(questionScore));
|
||||
|
@ -571,7 +581,7 @@ public class TestsMake extends Module {
|
|||
+ df.format(scoreDec) + "/10");
|
||||
|
||||
if(scoreDec < 5) {
|
||||
textView.setTextColor(Color.RED);
|
||||
textView.setTextColor(getResources().getColor(R.color.red));
|
||||
}
|
||||
|
||||
bt = (Button) findViewById(R.id.testResultsButton);
|
||||
|
@ -657,6 +667,38 @@ public class TestsMake extends Module {
|
|||
finish();
|
||||
}
|
||||
};
|
||||
tagsAnswersTypeItemClickListener = new OnItemClickListener() {
|
||||
public void onItemClick(AdapterView<?> parent, View v, int position,
|
||||
long id) {
|
||||
|
||||
CheckedTextView chk = (CheckedTextView) v;
|
||||
ListView lv = (ListView) parent;
|
||||
int childCount = lv.getCount();
|
||||
SparseBooleanArray checkedItems = lv.getCheckedItemPositions();
|
||||
int checkedItemsCount = checkedItems.size();
|
||||
boolean allChecked = true;
|
||||
|
||||
if(position == 0) {
|
||||
for(int i=1; i<childCount; i++) {
|
||||
lv.setItemChecked(i, !chk.isChecked());
|
||||
}
|
||||
} else {
|
||||
if(chk.isChecked()) {
|
||||
lv.setItemChecked(0, false);
|
||||
}
|
||||
|
||||
for(int i=1; i<checkedItemsCount; i++) {
|
||||
if(!checkedItems.get(i, false)) {
|
||||
allChecked = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (allChecked) {
|
||||
lv.setItemChecked(0, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
coursesDialog = new AlertDialog.Builder(this);
|
||||
coursesDialog.setTitle(R.string.selectCourseTitle);
|
||||
|
|
Loading…
Reference in New Issue
Block a user