Android SQL
17.01.2023, 08:44. Показов 275. Ответов 0
Здравствуйте, подскажите пожалуйста. Я общаюсь к базе данных, делаю записи в ней и произвожу чтение. Все работает, но после того как закрываю приложение и запускаю его снова доступа к базе данных нет.
Это код создания бд. | Java | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| package com.example.to_dolist;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DataBaseScheduler extends SQLiteOpenHelper {
private static final String DB_NAME = "SCHEDULE";
private static final int DB_VERSION = 1;
DataBaseScheduler(Context context){
super(context,DB_NAME,null,DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL( "CREATE TABLE LIST_TO_DO("
+"_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+"DATA TEXT,"
+"TIME TEXT,"
+"PRIORITY TEXT,"
+"TASK TEXT);"
);
insertRows(db,"12.01.2023","10-15","0","Первая запись");
insertRows(db,"12.01.2023","20-25","1","Вторая запись");
insertRows(db,"12.01.2023","30-35","2","Третья запись.");
insertRows(db,"12.01.2023","40-45","3","Четвертая запись.");
insertRows(db,"17.01.2023","777","Колодец","Успешное чтение записи.");
}
@Override
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
}
public void insertRows(SQLiteDatabase db,String data, String time, String priority, String description){
ContentValues cv = new ContentValues();
cv.put("DATA",data);
cv.put("TIME",time);
cv.put("PRIORITY",priority);
cv.put("TASK",description);
db.insert("LIST_TO_DO",null,cv);
}
} |
|
Это код MainActivity:
| Java | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
| package com.example.to_dolist;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
String currentDate = new SimpleDateFormat("dd.MM.yyyy", Locale.getDefault()).format(new Date());
private SQLiteDatabase DB;
private Cursor cursor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
connectDB(currentDate);
}
@Override
protected void onResume() {
super.onResume();
SharedPreferences ss = getSharedPreferences("P001",Context.MODE_PRIVATE);
if(ss.getString("PR","unknown")=="1"){
String pickedDate = ss.getString("HG","unknown");
Toast.makeText(this,pickedDate,Toast.LENGTH_SHORT).show();
connectDB(pickedDate);
}
}
@Override
protected void onDestroy(){
super.onDestroy();
cursor.close();
DB.close();
SharedPreferences sh = getSharedPreferences("P001",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sh.edit();
editor.putString("PR","0");
editor.apply();
}
@Override
protected void onStop(){
super.onStop();
}
public void b1Click(View view) {
Intent intent = new Intent(this,PickData.class);
DataBaseScheduler db= new DataBaseScheduler(this);
//Рабочий код для вставки записи в БД.
//SQLiteDatabase CN=db.getReadableDatabase();
//db.insertRows(CN,"18.01.2023","777","Колодец","Вставка и хранение.");
startActivity(intent);
}
public void connectDB(String newData){
try{
DataBaseScheduler db= new DataBaseScheduler(this);
DB= db.getReadableDatabase();
cursor = DB.query("LIST_TO_DO",new String[]{"DATA","TIME","TASK"},
"DATA=?",
new String[]{newData},
null,null,null
);
TextView tv = (TextView) findViewById(R.id.textView2);
if(cursor!=null && cursor.getCount()>0){
cursor.moveToFirst();
tv.setText(cursor.getString(2) );}
else{
Toast.makeText(this, newData,Toast.LENGTH_SHORT).show();
tv.setText("На сегодня ничего не запланированно." );
}
}
catch(SQLiteException e){
Toast toast=Toast.makeText(this,"EROR CODE: PIZDA_RULU",Toast.LENGTH_SHORT);
toast.show();
}
}
} |
|
Есть еще Picked data:
| Java | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| package com.example.to_dolist;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.CalendarView;
import android.widget.Toast;
public class PickData extends AppCompatActivity {
CalendarView mcv;
int YEAR;
int MONTH;
String MONTHS;
int DAY;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pick_data);
mcv = (CalendarView) findViewById(R.id.calendarView);
mcv.setOnDateChangeListener(new CalendarView.OnDateChangeListener(){
@Override
public void onSelectedDayChange(CalendarView view, int year,int month, int dayOfMonth){
YEAR = year;
MONTH = month+1;
DAY= dayOfMonth;
}
});
}
public void clickShow(View view)
{
if(MONTH<10){
MONTHS= "0"+Integer.toString(MONTH);
}
String data = Integer.toString(DAY)+"."+MONTHS+"."+Integer.toString(YEAR);
SharedPreferences sh = getSharedPreferences("P001",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sh.edit();
editor.putString("HG",data);
editor.putString("PR","1");
editor.apply();
finish();
}
public void clickNewTask(View view){
if(MONTH<10){
MONTHS= "0"+Integer.toString(MONTH);
}
String data = Integer.toString(DAY)+"."+MONTHS+"."+Integer.toString(YEAR);
SharedPreferences sh = getSharedPreferences("P001",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sh.edit();
editor.putString("HG",data);
editor.putString("PR","1");
editor.apply();
Intent intent = new Intent(this,newTask.class);
intent.putExtra("DATA_POST",data);
startActivity(intent);
}
} |
|
Ну и последнее активити добавления новой записи
| Java | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| package com.example.to_dolist;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class newTask extends AppCompatActivity {
String data;
SQLiteDatabase CN;
DataBaseScheduler db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_task);
Intent intent = getIntent();
data=intent.getStringExtra("DATA_POST");
}
public void saveTask(View view)
{
TextView tv = findViewById(R.id.editTextTextMultiLine);
String taskDescription = tv.getText().toString();
db= new DataBaseScheduler(this);
CN= db.getReadableDatabase();
db.insertRows(CN,data,"777","Колодец",taskDescription);
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
}
@Override
protected void onDestroy() {
super.onDestroy();
CN.close();
}
} |
|
0
|