效果图:
项目结构图:
activity_main.xml:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:orientation="vertical" 8 tools:context=".MainActivity"> 9 10 <ScrollView 11 android:layout_width="match_parent" 12 android:layout_height="wrap_content"> 13 </ScrollView> 14 15 <ListView 16 android:id="@+id/listview" 17 android:layout_width="match_parent" 18 android:layout_height="400dp"> 19 20 </ListView> 21 22 <Button 23 android:id="@+id/btn_addDocument" 24 android:layout_width="wrap_content" 25 android:layout_height="wrap_content" 26 android:text="添加记录" 27 android:layout_gravity="center" /> 28 29 </LinearLayout>
activity_add_document.xml:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:orientation="vertical" 8 tools:context=".AddDocument"> 9 10 <EditText 11 android:id="@+id/add_time" 12 android:layout_width="match_parent" 13 android:layout_height="wrap_content" 14 android:hint="输入时间"/> 15 16 <EditText 17 android:id="@+id/add_height" 18 android:layout_width="match_parent" 19 android:layout_height="wrap_content" 20 android:hint="输入身高"/> 21 22 <EditText 23 android:id="@+id/add_weight" 24 android:layout_width="match_parent" 25 android:layout_height="wrap_content" 26 android:hint="输入体重"/> 27 28 <EditText 29 android:id="@+id/add_blood_pressure" 30 android:layout_width="match_parent" 31 android:layout_height="wrap_content" 32 android:hint="输入血压"/> 33 34 <EditText 35 android:id="@+id/add_temperature" 36 android:layout_width="match_parent" 37 android:layout_height="wrap_content" 38 android:hint="输入体温"/> 39 40 <EditText 41 android:id="@+id/add_pulse" 42 android:layout_width="match_parent" 43 android:layout_height="wrap_content" 44 android:hint="输入脉搏"/> 45 46 <EditText 47 android:id="@+id/add_breathe" 48 android:layout_width="match_parent" 49 android:layout_height="wrap_content" 50 android:hint="输入呼吸"/> 51 52 <Button 53 android:id="@+id/btn_hd_add" 54 android:layout_width="wrap_content" 55 android:layout_height="wrap_content" 56 android:text="添加" 57 android:layout_gravity="center"/> 58 59 </LinearLayout>
document.xml:
1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent"> 6 7 <TextView 8 android:id="@+id/time" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:text="时间:2019.19.39"/> 12 13 <TextView 14 android:id="@+id/height" 15 android:layout_toRightOf="@+id/time" 16 android:layout_width="wrap_content" 17 android:layout_height="wrap_content" 18 android:layout_marginLeft="20dp" 19 android:text="身高:150 cm"/> 20 21 <TextView 22 android:id="@+id/weight" 23 android:layout_toRightOf="@+id/height" 24 android:layout_width="wrap_content" 25 android:layout_height="wrap_content" 26 android:layout_marginLeft="20dp" 27 android:text="体重:50 kg"/> 28 29 <TextView 30 android:id="@+id/blood_pressure" 31 android:layout_below="@+id/time" 32 android:layout_width="wrap_content" 33 android:layout_height="wrap_content" 34 android:text="血压:120/80 mmHg"/> 35 36 <TextView 37 android:id="@+id/temperature" 38 android:layout_below="@+id/height" 39 android:layout_toRightOf="@+id/blood_pressure" 40 android:layout_width="wrap_content" 41 android:layout_height="wrap_content" 42 android:layout_marginLeft="20dp" 43 android:text="体温:38.9 摄氏度"/> 44 45 <TextView 46 android:id="@+id/pulse" 47 android:layout_below="@+id/blood_pressure" 48 android:layout_width="wrap_content" 49 android:layout_height="wrap_content" 50 android:text="脉搏:100 次/分"/> 51 52 <TextView 53 android:id="@+id/breathe" 54 android:layout_below="@id/blood_pressure" 55 android:layout_toRightOf="@+id/pulse" 56 android:layout_marginLeft="20dp" 57 android:layout_width="wrap_content" 58 android:layout_height="wrap_content" 59 android:text="呼吸:100 次/分"/> 60 61 </RelativeLayout>
MainActivity:
1 package com.mingrisoft.health_document_test; 2 3 import android.content.Intent; 4 import android.database.Cursor; 5 import android.support.v7.app.AppCompatActivity; 6 import android.os.Bundle; 7 import android.view.View; 8 import android.widget.Button; 9 import android.widget.ListView; 10 import android.widget.SimpleAdapter; 11 import android.widget.Toast; 12 13 import java.util.ArrayList; 14 import java.util.HashMap; 15 import java.util.Map; 16 17 public class MainActivity extends AppCompatActivity { 18 private DBOpenHelper dbOpenHelper; 19 20 @Override 21 protected void onCreate(Bundle savedInstanceState) { 22 super.onCreate(savedInstanceState); 23 setContentView(R.layout.activity_main); 24 25 Button btn_addDocument = findViewById(R.id.btn_addDocument); 26 ListView listView = findViewById(R.id.listview); 27 dbOpenHelper = new DBOpenHelper(MainActivity.this,"db_document",null,1); 28 29 Cursor cursor = dbOpenHelper.getReadableDatabase().query("tb_document",null,null, null, null,null,null); 30 ArrayList<Map<String, String>> resultList = new ArrayList<>(); 31 32 while (cursor.moveToNext()) { 33 Map<String, String> map = new HashMap<>(); 34 map.put("time", cursor.getString(1)); 35 map.put("height", cursor.getString(2)); 36 map.put("weight", cursor.getString(3)); 37 map.put("blood_pressure", cursor.getString(4)); 38 map.put("temperature", cursor.getString(5)); 39 map.put("pulse", cursor.getString(6)); 40 map.put("breathe", cursor.getString(7)); 41 resultList.add(map); 42 } 43 44 if (resultList == null || resultList.size() == 0) { 45 Toast.makeText(MainActivity.this,"记录为空",Toast.LENGTH_SHORT).show(); 46 } else { 47 SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, resultList, 48 R.layout.document, new String[]{"time", "height", "weight", "blood_pressure", 49 "temperature", "pulse", "breathe"}, 50 new int[] {R.id.time, R.id.height, R.id.weight, R.id.blood_pressure, 51 R.id.temperature, R.id.pulse, R.id.breathe}); 52 listView.setAdapter(simpleAdapter); 53 } 54 55 btn_addDocument.setOnClickListener(new View.OnClickListener() { 56 @Override 57 public void onClick(View v) { 58 Intent intent = new Intent(MainActivity.this, AddDocument.class); 59 startActivity(intent); 60 } 61 }); 62 } 63 }
DBOpenHelper:
1 package com.mingrisoft.health_document_test; 2 3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 import android.database.sqlite.SQLiteOpenHelper; 6 import android.util.Log; 7 8 public class DBOpenHelper extends SQLiteOpenHelper { 9 final String CREATE_DOCUMENT = "create table tb_document (_id integer primary key autoincrement," + 10 "time, height, weight, blood_pressure, temperature, pulse, breathe)"; 11 12 public DBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { 13 super(context, name, null, version); 14 } 15 16 @Override 17 public void onCreate(SQLiteDatabase db) { 18 db.execSQL(CREATE_DOCUMENT); 19 } 20 21 @Override 22 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 23 Log.i("健康档案表","版本更新"+oldVersion+"-->"+newVersion); 24 } 25 }
AddDocument:
1 package com.mingrisoft.health_document_test; 2 3 import android.content.ContentValues; 4 import android.database.Cursor; 5 import android.database.sqlite.SQLiteDatabase; 6 import android.support.v7.app.AppCompatActivity; 7 import android.os.Bundle; 8 import android.view.View; 9 import android.widget.Button; 10 import android.widget.EditText; 11 import android.widget.Toast; 12 13 public class AddDocument extends AppCompatActivity { 14 private DBOpenHelper dbOpenHelper; 15 16 @Override 17 protected void onCreate(Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.activity_add_document); 20 21 dbOpenHelper = new DBOpenHelper(AddDocument.this,"db_document",null,1); 22 final EditText et_add_time = findViewById(R.id.add_time); 23 final EditText et_add_height = findViewById(R.id.add_height); 24 final EditText et_add_weight = findViewById(R.id.add_weight); 25 final EditText et_add_blood_pressure = findViewById(R.id.add_blood_pressure); 26 final EditText et_add_temperature = findViewById(R.id.add_temperature); 27 final EditText et_add_pulse = findViewById(R.id.add_pulse); 28 final EditText et_add_breathe = findViewById(R.id.add_breathe); 29 Button btn_hd_add = findViewById(R.id.btn_hd_add); 30 31 btn_hd_add.setOnClickListener(new View.OnClickListener() { 32 @Override 33 public void onClick(View v) { 34 String time = et_add_time.getText().toString(); 35 String height = et_add_height.getText().toString(); 36 String weight = et_add_weight.getText().toString(); 37 String blood_pressure = et_add_blood_pressure.getText().toString(); 38 String temperature = et_add_temperature.getText().toString(); 39 String pulse = et_add_pulse.getText().toString(); 40 String breathe = et_add_breathe.getText().toString(); 41 42 if (time.equals("")) { 43 Toast.makeText(AddDocument.this,"时间不能为空",Toast.LENGTH_SHORT).show(); 44 } else { 45 String key = et_add_time.getText().toString(); 46 Cursor cursor = dbOpenHelper.getReadableDatabase().query("tb_document",null,"time=?",new String[]{key}, null,null,null); 47 48 if (cursor.getCount() != 0) { 49 Toast.makeText(AddDocument.this,"时间不能重复",Toast.LENGTH_SHORT).show(); 50 } else { 51 insertData(dbOpenHelper.getReadableDatabase(), time, height, weight, blood_pressure, temperature, 52 pulse, breathe); 53 Toast.makeText(AddDocument.this, "添加成功", Toast.LENGTH_SHORT).show(); 54 } 55 } 56 } 57 }); 58 } 59 60 private void insertData(SQLiteDatabase sqLiteDatabase, String time, String height, String weight, String blood_pressure 61 , String temperature, String pulse, String breathe) { 62 ContentValues contentValues = new ContentValues(); 63 contentValues.put("time", time); 64 contentValues.put("height", height); 65 contentValues.put("weight", weight); 66 contentValues.put("blood_pressure", blood_pressure); 67 contentValues.put("temperature", temperature); 68 contentValues.put("pulse", pulse); 69 contentValues.put("breathe", breathe); 70 71 sqLiteDatabase.insert("tb_document",null,contentValues); 72 } 73 }
Manifests:
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.mingrisoft.health_document_test"> 4 5 <application 6 android:allowBackup="true" 7 android:icon="@mipmap/ic_launcher" 8 android:label="@string/app_name" 9 android:roundIcon="@mipmap/ic_launcher_round" 10 android:supportsRtl="true" 11 android:theme="@style/AppTheme"> 12 <activity android:name=".MainActivity"> 13 <intent-filter> 14 <action android:name="android.intent.action.MAIN" /> 15 16 <category android:name="android.intent.category.LAUNCHER" /> 17 </intent-filter> 18 </activity> 19 <activity android:name=".AddDocument"></activity> 20 </application> 21 22 </manifest>