日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android SQLite保存多个选择题的选择信息

發布時間:2024/10/8 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android SQLite保存多个选择题的选择信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近做一個項目其中有一個測試的模塊,但是多個選項每次保存一個選項的信息在表格的單元格里面,信息就會顯得很多,查找起來也會比較麻煩,后來就想了一了辦法,把所有的選項轉換成0,1,2,3,4這樣的數字信息,連成一個字符串保存在一個單元格中,查找到后再通過轉換得到患者的輸入信息。

下面看代碼:

1.布局文件isi.xml,也就是問題和選項的布局

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/background"><TextView android:layout_width="match_parent"android:layout_height="wrap_content"android:paddingTop="20dp"android:gravity="center"android:textSize="40sp"android:textColor="@color/white"android:text="慢性失眠癥認知行為治療(CBT)遠程管理系統"/><RelativeLayout android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/relativeLayout"><TextView android:id="@+id/text"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_centerInParent="true"android:gravity="center"android:textSize="40sp"android:textColor="@color/white"android:text="嚴重失眠指數"/><TextView android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/text"android:gravity="center"android:textColor="@color/orange"android:textSize="30sp"android:text="Tips:分值/嚴重程度:0/無,1/輕度,2/中度,3/重度,4/極重度"/> </RelativeLayout><RelativeLayout android:layout_width="match_parent"android:layout_height="match_parent"android:visibility="invisible"android:id="@+id/relativeLayout2"><RelativeLayout android:id="@+id/linearLayout"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:orientation="vertical"><TextViewandroid:id="@+id/questiontitle"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="30sp"android:textColor="@color/white"android:layout_centerHorizontal="true"android:text="對于一下問題,請您選擇出近一個月來最符合您睡眠狀況的選項"/><RadioGroup android:id="@+id/radiogroup"android:layout_width="wrap_content"android:layout_height="wrap_content"android:visibility="invisible"android:layout_below="@id/questiontitle"android:layout_alignLeft="@id/questiontitle"android:paddingTop="20dp"android:orientation="vertical"android:stretchColumns="*"><RadioButton android:id="@+id/button01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:textSize="30sp" android:gravity="center" android:layout_weight="1"android:button="@null"android:background="@drawable/radio"android:text="無"/><RadioButton android:id="@+id/button02" android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:textSize="30sp" android:gravity="center" android:layout_weight="1"android:button="@null"android:background="@drawable/radio"android:text="輕度"/><RadioButton android:id="@+id/button03"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:textSize="30sp" android:gravity="center" android:layout_weight="1"android:button="@null"android:background="@drawable/radio"android:text="中度"/><RadioButton android:id="@+id/button04" android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:textSize="30sp" android:gravity="center" android:layout_weight="1"android:button="@null"android:background="@drawable/radio"android:text="重度"/><RadioButton android:id="@+id/button05" android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:textSize="30sp" android:gravity="center" android:layout_weight="1"android:button="@null"android:background="@drawable/radio"android:text="極重度"/></RadioGroup> </RelativeLayout> <Button android:id="@+id/nextbutton"android:layout_width="200dp"android:layout_height="wrap_content"android:layout_below="@id/linearLayout"android:layout_alignParentRight="true"android:textColor="@android:color/white"android:textSize="30sp"android:text="下一題"/></RelativeLayout> </RelativeLayout>

2、PatientTest類,用來封裝isi信息?

PatientTest.java

package com.example.project_isi;public class PatientTest { int id; String isi; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getIsi() { return isi; } public void setIsi(String isi) { this.isi = isi; } public PatientTest(String isi) { super(); this.isi = isi; } public PatientTest() { super(); } } 3、創建DBHelper類,用于創建數據庫。 DBHelper.java package com.example.project_isi;import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper;public class PatientDB extends SQLiteOpenHelper{ private final static String DATABASE_NAME = "patientdata.db"; private final static int DATABASE_VERSION = 1; //創建的表格名 private final static String TABLE_NAME02 = "test_table";//一般信息參數 public final static String PATIENT_ID = "id"; public final static String ISI = "isi";public PatientDB(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } //創建表格 @Override public void onCreate(SQLiteDatabase db) {// //創建測試表 String sql02 = "CREATE TABLE " + TABLE_NAME02 + " (" + PATIENT_ID + " INTEGER primary key autoincrement, " + ISI + " text);"; db.execSQL(sql02);}@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //刪除舊版表格 //String sql = "DROP TABLE IF EXISTS " + TABLE_NAME; //db.execSQL(sql); //onCreate(db); } }

4、PatientTestDAO類,用于實現對數據的保存,修改刪除等

PatientTestDAO.ava

package com.example.project_isi;import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase;public class PatientTestDAO { private final static String TABLE_NAME02 = "test_table"; private String PATIENT_ID = "id"; private String PATIENT_ISI = "isi"; private PatientDB helper; private SQLiteDatabase db; public PatientTestDAO(Context context){ helper = new PatientDB(context);// 初始化DBOpenHelper對象 } //增加病人測試數據 public void insert(PatientTest patienttest){ //創建一個可寫的數據庫 db = helper.getWritableDatabase(); //ContentValues以鍵值對的形式存放數據 ContentValues cv = new ContentValues(); System.out.println("創建ISI"); cv.put(PATIENT_ISI, patienttest.getIsi()); System.out.println("創建ISI成功!!"); db.insert(TABLE_NAME02, null, cv); //return row; }public void updateISI(int id ,PatientTest patienttest){ //獲得一個可寫的數據庫 SQLiteDatabase db = helper.getWritableDatabase(); //修改條件 String where = PATIENT_ID + " = ?"; //修改條件的參數 Integer.toString(id),把數字用字符串表示 String[] whereValue = { Integer.toString(id) };ContentValues cv = new ContentValues(); cv.put(PATIENT_ISI, patienttest.getIsi()); db.update(TABLE_NAME02, cv, where, whereValue); } //查找病人信息 public PatientTest find(int id){ db = helper.getWritableDatabase(); Cursor cursor = db.rawQuery("select id,isi from test_table where id = ?",new String[] {String.valueOf(id)});//根據編號查找到的病人信息,并存儲到Cursor中 //遍歷查找到的病人信息 if(cursor.moveToNext()){ //將遍歷查找到的病人信息存儲到PatientInformation類中 return new PatientTest(cursor.getString(cursor.getColumnIndex("isi"))); } return null; } //刪除數據 public void delete(Integer... ids){ /*db = helper.getWritableDatabase(); String where = PATIENT_ID + " = ?"; String[] whereValue ={ Integer.toString(id) }; db.delete(TABLE_NAME, where, whereValue);*/ if(ids.length > 0){ //判斷是否存在要刪除的id StringBuffer sb = new StringBuffer(); for(int i = 0;i < ids.length;i++){ sb.append('?').append(','); //將刪除條件添加到StringBuffer中 } sb.deleteCharAt(sb.length() - 1); db = helper.getWritableDatabase(); db.execSQL("delete from test_table where _id in (" + sb + ")",(Object[]) ids); } }//獲取總記錄數 public long getCount() {db = helper.getWritableDatabase();Cursor cursor = db.rawQuery("select count(id) from test_table", null);//獲取病人信息記錄數if (cursor.moveToNext())//判斷Cursor中是否有數據{return cursor.getLong(0);//返回總記錄數}return 0;//沒有數據則返回0} //獲取病人的最大編號 public int getMaxId() {db = helper.getWritableDatabase();Cursor cursor = db.rawQuery("select max(id) from test_table", null);//獲取病人信息中的最大編號//訪問Cursor中的最后一條數據while (cursor.moveToLast()) {return cursor.getInt(0);//獲取訪問到的數據,即最大編號}return 0;//如果沒有數據則返回0}}

5.主函數ISIActivity,問題的選擇與保存

5、ISIActivity.java

package com.example.project_isi;import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener; import android.view.Window; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast;public class ISIActivity extends Activity{private RelativeLayout rl; private RelativeLayout rl2; private int i = 0; private String[] question = {"1、入睡困難:","2、維持睡眠困難:","3、早醒:","4、您對目前的睡眠模式滿意/不滿意程度如何?:", "5、您認為您的失眠在多大程度上影響了您的日常功能:","6、您的失眠問題影響了您的生活質量,您覺得在別人眼中你的失眠程度如何?", "7、您對目前的睡眠問題的擔心/痛苦程度:","您的得分:"}; private int j; private String buttontext; private int resulttext[] = new int[10]; private RadioButton button01; private RadioButton button02; private RadioButton button03; private RadioButton button04; private RadioButton button05; private RadioGroup radioGroup; private TextView questiontext; private int score;@Override protected void onCreate(Bundle savedInstanceState) { this.requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.isi);questiontext = (TextView) findViewById(R.id.questiontitle); radioGroup = (RadioGroup) findViewById(R.id.radiogroup); button01 = (RadioButton) findViewById(R.id.button01); button02 = (RadioButton) findViewById(R.id.button02); button03 = (RadioButton) findViewById(R.id.button03); button04 = (RadioButton) findViewById(R.id.button04); button05 = (RadioButton) findViewById(R.id.button05); //resultbutton = (Button) findViewById(R.id.resultbutton); rl = (RelativeLayout) findViewById(R.id.relativeLayout); rl2 = (RelativeLayout) findViewById(R.id.relativeLayout2); radioGroup.setOnCheckedChangeListener(new RadioGroupListener()); rl.setOnTouchListener(new OnTouchListener() {@Override public boolean onTouch(View arg0, MotionEvent arg1) { rl.setVisibility(View.INVISIBLE); rl2.setVisibility(View.VISIBLE); return false; } });final Button nextbutton = (Button) findViewById(R.id.nextbutton); nextbutton.setOnClickListener(new OnClickListener() {@Override public void onClick(View v) { //questiontext.setText(question[i]); //i ++; if(button01.isChecked()==false && button02.isChecked()==false && button03.isChecked()==false && button04.isChecked()==false&& button05.isChecked()==false && i != 0){new AlertDialog.Builder(ISIActivity.this) .setTitle("溫馨提示") .setMessage("您還沒有選擇任何一個選項!") .setPositiveButton("確定", null) .show(); return; } else{ questiontext.setText(question[i]); if(i < question.length +1){ i++; } if(i == 1){ radioGroup.setVisibility(View.VISIBLE); } //i++; radioGroup.clearCheck(); } score += j; System.out.println("result----->" + score); resulttext[i]= j; System.out.println("選擇的結果----》" + resulttext[i]); //PInformation(); //question[7] = "您的得分: " + score; if(i == question.length - 1){ nextbutton.setText("確定"); //score += j; int total = score +j; question[7] = "您的得分: " + total; System.out.println("您的得分---" + total); //PInformation(); //finish(); }if(i == question.length ){ //finish(); PInformation(); radioGroup.setVisibility(View.INVISIBLE); nextbutton.setVisibility(View.INVISIBLE); } } }); } public class RadioGroupListener implements OnCheckedChangeListener{@Override public void onCheckedChanged(RadioGroup group, int checkedId) { if(checkedId == button01.getId()){ j = 0; buttontext = button01.getText().toString(); System.out.println("buttontext ---" + buttontext); } if(checkedId == button02.getId()){ j = 1; System.out.println("result11----->" + j); buttontext = button02.getText().toString(); System.out.println("buttontext ---" + buttontext); } if(checkedId == button03.getId()){ j = 2; buttontext = button03.getText().toString(); System.out.println("buttontext ---" + buttontext); } if(checkedId == button04.getId()){ j = 3; buttontext = button04.getText().toString(); System.out.println("buttontext ---" + buttontext); } if(checkedId == button05.getId()){ j = 4; buttontext = button05.getText().toString(); System.out.println("buttontext ---" + buttontext); } }} //獲得要保存的數據 public void PInformation(){ int[] result = new int[8]; result[0] = resulttext[2]; result[1] = resulttext[3]; result[2] = resulttext[4]; result[3] = resulttext[5]; result[4] = resulttext[6]; result[5] = resulttext[7]; result[6] = resulttext[8]; result[7] = score; String isi = ""; //轉換成字符串保存到表格中 for(int i = 0;i < result.length;i++){ isi += String.valueOf(result[i]); } System.out.println("嚴重失眠指數----->" + isi); PatientTest patientTest = new PatientTest(); patientTest.setIsi(isi); PatientTestDAO ptdao = new PatientTestDAO(ISIActivity.this); ptdao.insert(patientTest); System.out.println("當前ID----" + ptdao.getMaxId()); Toast.makeText(ISIActivity.this, "【失眠程度評估】數據保存成功!", Toast.LENGTH_SHORT).show(); } }

最后得到的數據如下所示:


第一次寫博客,難免有很多不足,關于這個數據的查詢和轉換就下次,要開飯了~~~~

總結

以上是生活随笔為你收集整理的Android SQLite保存多个选择题的选择信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。