您的位置:首页 > 移动开发 > Android开发

性格色彩测试android程序开发之八--测试题的实现

2012-04-19 14:42 316 查看
思路:当用户点击dialog的确定按钮,监听事件就会激活测试题界面的activity。它负责显示测试题的题干,选项等信息,上下翻页等内容。为了能在显示activity的同时,显示试题信息。在该activity的oncreate()方法中调用了一个displayPorblems(currentNum)函数,他负责读取sqlite中数据库中的题目信息并显示在组件上。为了响应上下翻页按钮的功能,在处理按钮的代码中也调用了displayPorblems(currentNum)函数,每当用户翻页时,该函数都会从新读取并显示新的试题信息。


具体实现如下:

package logan.lejia;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class TestingView extends Activity {
TextView textview_title, textview_bottom;
RadioButton buttonFir, buttonSec, buttonThir, buttonFour;
RadioGroup radioGroup = null;
Button buttonUp, buttonNext;
private final int version = 1;
private int currentNum = 1;

public int getCurrentNum() {
return currentNum;
}

public void setCurrentNum(int currentNum) {
this.currentNum = currentNum;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.answview);
// 试题的题干
textview_title = (TextView) findViewById(R.id.textView_problems_title);
// 单选按钮和按钮组
buttonFir = (RadioButton) findViewById(R.id.radioButton1);
buttonSec = (RadioButton) findViewById(R.id.radioButton2);
buttonThir = (RadioButton) findViewById(R.id.radioButton3);
buttonFour = (RadioButton) findViewById(R.id.radioButton4);
radioGroup = (RadioGroup) findViewById(R.id.ButtonGroup);

// 两个按钮中间的textview
textview_bottom = (TextView) findViewById(R.id.textView_bottomView);
textview_bottom.setText("第"+currentNum+"题/共有10题");
textview_bottom.setTextSize(15);

// 两个上下翻页的按钮
buttonUp = (Button) findViewById(R.id.button_Up);
buttonNext = (Button) findViewById(R.id.button_Next);
// 监听
buttonNext.setOnClickListener(new PageTuriningListener());
buttonUp.setOnClickListener(new PageTuriningListener());
TestingView.this.displayPorblems(currentNum);
}

class PageTuriningListener implements View.OnClickListener {
// 获取当前题号
int number = TestingView.this.getCurrentNum();

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// 判断是哪一个按钮触发了事件
if (v.getId() == buttonUp.getId()) {
// 上翻页
if (number == 1) {
// 若这一题已经是第一题,则不显示上翻页按钮
v.setVisibility(View.INVISIBLE);
} else {
v.setVisibility(View.VISIBLE);
}
TestingView.this.setCurrentNum(number--);
// 刷新测试题
TestingView.this.displayPorblems(number);
} else if (v.getId() == buttonNext.getId()) {
// 下翻页
if (number == 10) {
// 若这一题已经是最后一题,则不显示下翻页按钮
v.setVisibility(View.INVISIBLE);
} else {
v.setVisibility(View.VISIBLE);
TestingView.this.setCurrentNum(number++);
// 刷新测试题
TestingView.this.displayPorblems(number);
}
}
}
}

public void displayPorblems(int currentNum) {
SQLiteHelper helper = new SQLiteHelper(this, "android_lejia", null,
version);
// 获取可以进行增删改查的数据库实例
SQLiteDatabase database = helper.getReadableDatabase();
Cursor cursor = database.query("test", new String[] { "id", "title",
"first", "second", "third", "fourth" }, "id=?",
new String[] { currentNum + "" }, null, null, null);
cursor.moveToNext();
// 共有6列,标号从0-5
System.out.println(cursor.getColumnCount());
// String id = cursor.getString(0);//题号
cursor.moveToFirst();
String title = cursor.getString(1);// 题干
String first = cursor.getString(2);// 选项A
String second = cursor.getString(3);// 选项B
String third = cursor.getString(4);// 选项C
String fourth = cursor.getString(5);// 选项D
cursor.close();
database.close();
textview_title.setText(title);
buttonFir.setText(first);
buttonSec.setText(second);
buttonThir.setText(third);
buttonFour.setText(fourth);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐