Изменение текста в глюк EditText - PullRequest
0 голосов
/ 11 февраля 2019

В моей деятельности у меня есть многострочный EditText, поэтому пользователь может хранить некоторые заметки:

<EditText
    android:id="@+id/notesTV"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="30dp"
    android:layout_marginLeft="30dp"
    android:layout_marginTop="30dp"
    android:layout_marginEnd="30dp"
    android:layout_marginRight="30dp"
    android:background="@android:color/transparent"
    android:hint="Enter notes here..."
    android:inputType="textMultiLine"
    android:scrollbars="vertical"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">>
</EditText>

В коде я создаю выход для этого EditText.Затем я захожу в свою базу данных, чтобы получить любые заметки, которые пользователь мог сделать ранее, и установить эти заметки в тексте EditText.

package org1hnvc.httpshbssup.hbsnewventurecompetition;

import ...

public class Notes extends AppCompatActivity {

    private EditText notesTV;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTitle("Notes");

        notesTV = findViewById(R.id.notesTV);

        fetchNotes();
    }

    private void fetchNotes(){
        FirebaseManager.manager.fetchNotes(companyID, new FirebaseManager.NotesCallback() {
            @Override
            public void onSuccess(String notes) {
                notesTV.setText(notes);
            }

            @Override
            public void onError(String error) {
                Toast.makeText(getApplicationContext(), "An error occurred while fetching your notes",
                        Toast.LENGTH_LONG).show();
            }
        });
    }

}

Когда я делаю это, приложение сходит с ума.Он выходит из действия и переходит к предыдущему действию (из которого я вышел).Не выдается никакой ошибки, но, очевидно, код не выполняется должным образом.Сначала я полагал, что это может иметь какое-то отношение к моему методу fetchNotes.Однако когда я удаляю этот метод и просто устанавливаю текст EditText на «test» в методе onCreate, происходит то же самое.Кто-нибудь, пожалуйста, помогите.

1 Ответ

0 голосов
/ 11 февраля 2019

Ваша активность падает из-за этой строки:

notesTV = findViewById(R.id.notesTV);

Вы просите действие "найти" представление по идентификатору, за исключением того, что вы никогда не сообщали ему, какой макет раздувать.

Внести следующие изменения:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.the_layout_file_of_your_activity);

    setTitle("Notes");

    notesTV = findViewById(R.id.notesTV);

    fetchNotes();
}

В частности, деталь setContentView().

Таким образом, действие будет раздувать макет и позволит ему найти ваш notesTV EditText.

...