Загрузка и редактирование определенных ранее заполненных данных - PullRequest
0 голосов
/ 26 мая 2019

Я создаю приложение для заметок, и мои заметки автоматически сохраняются в базе данных Firebase.Пока что пользователь может делать свои собственные заметки, но не может их редактировать.Я хочу, чтобы приложение открывало ту же заметку (то есть поля title и desc будут содержать данные, введенные в последний раз) при нажатии, чтобы они могли редактировать ее, но не знаю как, я даже не знаю, что искать в Интернете, какэто мой первый проект.

Создание новой заметки и автообновление

(один слушатель для заголовка и один для тела)
public class NewNoteActivity extends AppCompatActivity{


    private EditText editText, etd;
    private FirebaseAuth fAuth;
    final DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference()/* THIS!*/.child("Users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("posts").push();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new_note);

        editText = findViewById(R.id.etx);
        etd = findViewById(R.id.etdx);



        final Map<String, Object> map = new HashMap<>();
        map.put("id", databaseReference.getKey());

        editText.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void afterTextChanged(Editable s) {

                map.put("title", editText.getText().toString());
                databaseReference.setValue(map);


            }
        });

        etd.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void afterTextChanged(Editable s) {

                map.put("desc", etd.getText().toString());

                databaseReference.setValue(map);

            }

        });
        }

Отображение заметок

(и установите действие onClick)
 adapter = new FirebaseRecyclerAdapter<Model, ViewHolder>(options) {
            @Override
            public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.list_item, parent, false);

                return new ViewHolder(view);
            }


            @Override
            protected void onBindViewHolder(final ViewHolder holder, final int position, final Model model) {

                holder.setTxtTitle(model.getmTitle());
                holder.setTxtDesc(model.getmDesc());
                //holder.setmId(model.getmId());

                holder.root.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        //Here I need to find somehow to get back to the note I clicked on

                    }
                });
            }

        };
        recyclerView.setAdapter(adapter);

Так выглядит список

Поскольку я еще не могу публиковать изображения: https://i.imgur.com/MDQ15a6.pngКаждый блок является запиской.(Игнорировать B)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...