Здравствуйте. Я создал приложение для Android, которое получает автоматические push-уведомления и сохраняет их в основном упражнении ... В основном я храню уведомления в тексте редактирования только для тестирования, и оно работает ... Как я могу получить сообщенияв списке вместо текста для редактирования?и могу ли я создать таблицу и отобразить дату и время в столбце, а сообщение в другом столбце рядом с ним?
Мой код для хранения в тексте редактирования следующий:
final FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference myRef = database.getReference("Fall_Detection_Status");
final DatabaseReference myRef1 = database.getReference("Fall_Detection_Status1");
final DatabaseReference myRef2 = database.getReference("Seizure");
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
val = dataSnapshot.getValue(Long.class);
if(val.longValue() == 1 && val1.longValue() == 1) {
Date currentTime = Calendar.getInstance().getTime();
writeToFile(currentTime.toString() + "\n" + " Fall Detected" + "\n", getApplicationContext());
result.setText("");
result.setText(readFromFile(getApplicationContext()));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
myRef1.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
val1 = dataSnapshot.getValue(Long.class);
if(val.longValue() == 1 && val1.longValue() == 1) {
Date currentTime = Calendar.getInstance().getTime();
writeToFile(currentTime.toString() + "\n" + " Fall Detected" + "\n", getApplicationContext());
result.setText("");
result.setText(readFromFile(getApplicationContext()));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
myRef2.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//Toast.makeText(getApplicationContext(),"This is a test!",Toast.LENGTH_LONG).show();
val2 = dataSnapshot.getValue(Long.class);
if(val2.longValue() == 1){
Date currentTime = Calendar.getInstance().getTime();
writeToFile(currentTime.toString() + "\n" + " Seizure Detected" + "\n", getApplicationContext());
result.setText("");
result.setText(readFromFile(getApplicationContext()));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
result.setText("");
result.setText(readFromFile(getApplicationContext()));
myRef.setValue(0);
myRef1.setValue(0);
myRef2.setValue(0);
private String readFromFile(Context context)
{
StringBuilder total = new StringBuilder();
BufferedReader r = null;
try {
r = new BufferedReader(new InputStreamReader(context.openFileInput("events.txt")));
String line;
while ((line = r.readLine()) != null) {
total.append(line).append('\n');
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return total.toString();
}
private void writeToFile(String data,Context context) {
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput("events.txt", Context.MODE_APPEND));
outputStreamWriter.append(data);
outputStreamWriter.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}