EditText не имеет значения - PullRequest
0 голосов
/ 04 июня 2018

У меня есть два EditText's, заголовок и дескриптор.

    final EditText naslov_comm = view.findViewById(R.id.naslov_comm);
    final EditText opis_comm = view.findViewById(R.id.opis_comm);
    final String inputnaslov = naslov_comm.getText().toString();
    final String inputopis = opis_comm.getText().toString();
    objavicom_btn = view.findViewById(R.id.objavicom_btn);

    objavicom_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            CommentDTO commentDTO_a = new CommentDTO(inputnaslov, inputopis);

            sendNetworkRequest(id_post, user_pref, commentDTO_a);

        }
    });

Каждый раз, когда нажимается моя кнопка, она должна принимать эти входы, но возвращает пустую строку

inputnaslov=""
inputopis=""

Вот мой xml-файл

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.hrle.android_portal.ReadPostActivity"
android:background="?android:windowBackground"
android:id="@+id/arpfc">



<EditText
    android:id="@+id/naslov_comm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="Unesite naslov"
    android:inputType="text"

    />

<EditText
    android:id="@+id/opis_comm"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/naslov_comm"
    android:hint="Unesite opis"
    android:inputType="text" />


<Button
    android:id="@+id/objavicom_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/opis_comm"
    android:layout_alignParentEnd="true"
    android:text="Objavi"
    />

Может быть, в конечном итоге причиной этой проблемы, или, возможно, Android: inputType = "text" в моем xml?

Ответы [ 3 ]

0 голосов
/ 04 июня 2018

Вы должны добавить getText().toString() в onClick(View view) Раздел просто.

 objavicom_btn = view.findViewById(R.id.objavicom_btn);

    objavicom_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

        final String inputnaslov = naslov_comm.getText().toString();
        final String inputopis = opis_comm.getText().toString();
        CommentDTO commentDTO_a = new CommentDTO(inputnaslov, inputopis);
        sendNetworkRequest(id_post, user_pref, commentDTO_a);


        }
    });
0 голосов
/ 04 июня 2018

То, что вы сделали, вы получаете значение из EditText, когда оно было пустым, а затем вы используете эту пустую строку.Правильный способ - получить текст EditText, когда пользователь нажимает кнопку.

final EditText naslov_comm = view.findViewById(R.id.naslov_comm);
final EditText opis_comm = view.findViewById(R.id.opis_comm);
findViewById(R.id.objavicom_btn).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        final String inputnaslov = naslov_comm.getText().toString();
        final String inputopis = opis_comm.getText().toString();
        CommentDTO commentDTO_a = new CommentDTO(inputnaslov, inputopis);
        sendNetworkRequest(id_post, user_pref, commentDTO_a);
    }
});

Обновление

Возможно, причиной этой проблемы является, или, возможно, android:inputType = "text" в моем xml?

Нет!Это не создаст проблем, это просто тип ввода , как если бы вы установили номер, пользователь увидит клавиатуру с цифрами и сможет вводить цифры только в editext.

0 голосов
/ 04 июня 2018

Место, где вы читаете значения edittext, неверно.В то время ваш editText должен иметь пустое значение (так как это блок объявления, в котором вы пытаетесь прочитать динамическое значение).

Поэтому, когда вы хотите прочитать значение динамически, лучше всего прочитать его по щелчкукнопки.


Переместить код чтения значения при нажатии на кнопки

inputnaslov = naslov_comm.getText().toString();
inputopis = opis_comm.getText().toString();

Как показано ниже

objavicom_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

           // Read latest value of edittexts 
            inputnaslov = naslov_comm.getText().toString();
            inputopis = opis_comm.getText().toString();

            CommentDTO commentDTO_a = new CommentDTO(inputnaslov, inputopis);

            sendNetworkRequest(id_post, user_pref, commentDTO_a);

        }
    });
...