Во-первых, я полный новичок ie в сообществе переполнения стека и разработке android приложений. Я хотел спросить, есть ли способ добавить данные в Array или ArrayList, которые я получаю из базы данных, чтобы я мог позже использовать этот Arraylist в моем представлении ресайклера.
Я получаю данные, когда я звоню getAll () из класса myCoreDatabase в MainActivity, все, что я хотел знать, - это как назначить эти данные в ArrayList в моем MainActivity, чтобы я мог взять это и заполнить свой recyclerview. Есть ли способ или я здесь ошибаюсь. Пожалуйста, любые предложения и ответы будут действительно полезны.
Кстати, это простое приложение для создания заметок, основное действие которого имеет вид утилизации, а также действие для создания заметок, которое делает заметки и сохраняет их в базе данных. Все, что я хочу, это взять эти данные из базы данных и поместить их в массив, чтобы я мог заполнить свое представление Recycler на моем MainActivity. Надеюсь, я достаточно ясен.
или
Как могу ли я получить доступ к notesArray (класс myCoreDatabase), который является списком массивов из моего основного действия?
Спасибо.
MainActivity
RecyclerView r1;
myCoreDatabase mcd;
ArrayList<String> notesArray1 = new ArrayList<String>();
String nArray;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
r1=findViewById(R.id.myRecycler);
mcd = new myCoreDatabase(this);
notesArray1=mcd.getAll();
System.out.println(nArray);
}
public void writeNote(View view) {
Intent i1= new Intent(this, WriteNote.class);
startActivity(i1);
}
Действия WriteNote
TextView note;
myCoreDatabase mcd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_write_note);
mcd=new myCoreDatabase(this);
note=(TextView)findViewById(R.id.note_data);
}
public void back(View view) {
//If note data is null execute intent go back to main page
String s1= note.getText().toString();
if(s1.equals("")) {
Intent i1 = new Intent(this, MainActivity.class);
startActivity(i1);
kill_activity();
}else{
// Perform database operations save data and get back to the main activity
SQLiteDatabase sql= mcd.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("note",s1);
sql.insert("mynotes",null,cv);
//then go back to main activity or home
Intent i1 = new Intent(this, MainActivity.class);
startActivity(i1);
kill_activity();
}
}
void kill_activity()
{
finish();
}
MyCoreDatabase.class
public class myCoreDatabase extends SQLiteOpenHelper {
SQLiteDatabase myDb;
Context ctx;
public myCoreDatabase(Context context) {
super(context, "mynotes.db", null, 1);
ctx=context;
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("create table mynotes(n_id integer primary key autoincrement, note text )");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("drop table if exists mynotes");
onCreate(sqLiteDatabase);
}
public String getAll(){
myDb= getReadableDatabase();
Cursor cr=myDb.rawQuery("Select * from mynotes",null);
StringBuilder str=new StringBuilder();
while (cr.moveToNext()){
String s1= cr.getString(1);
String s2= cr.getString(1);
str.append(s1+" "+s2+"\n");
ArrayList<String> notesArray = new ArrayList<String>();
while (cr.moveToNext()){
String s= cr.getString(1);
notesArray.add(s);
// Log.i("Data:","Added");
}
for (int i = 0; i < notesArray.size(); i++) {
System.out.println(notesArray.get(i));
}
Log.i("Strings:-",notesArray.toString());
// Toast.makeText(ctx,str.toString(),Toast.LENGTH_SHORT).show();
}
return null;
}
}