我有两个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”?
答案 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。