EditText没有价值

时间:2018-06-04 09:48:12

标签: java android input android-textinputedittext

我有两个EditText,标题输入和desc输入。

dan | mo | b

每次单击我的按钮时,它应该接受这些输入,但它返回空字符串

    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);

        }
    });

这是我的xml文件

inputnaslov=""
inputopis=""

最终会导致这个问题,或者我的xml中的android:inputType =“text”?

3 个答案:

答案 0 :(得分:2)

您应该将 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);


        }
    });

答案 1 :(得分:1)

您正在阅读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);

        }
    });

答案 2 :(得分:1)

你所做的是,当它是空白时你从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 =&#34; text&#34;在我的xml中?

没有!它不会产生问题,只是input type就像你设置了它一样,用户会看到数字键盘,只能输入数字到editext。