Android Edittext setText不显示任何文本,但记录getText()。toString首先显示设置的文本
我有一个很奇怪的问题 这是我的两篇编辑文章Android Edittext setText不显示任何文本,但记录getText()。toString首先显示设置的文本,android,android-edittext,Android,Android Edittext,我有一个很奇怪的问题 这是我的两篇编辑文章 <EditText android:id="@+id/tiekm" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginStart="64dp" android:layo
<EditText
android:id="@+id/tiekm"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginStart="64dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="8dp"
android:background="@drawable/edit_border"
android:hint="kms"
android:inputType="number"
android:maxLines="1"
android:gravity="center"
android:saveEnabled="false"
android:textAlignment="center"
android:theme="@style/EditTheme2"
app:layout_constraintEnd_toStartOf="@+id/tieamt"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/mode" />
<EditText
android:id="@+id/comment"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
android:background="@drawable/borders2"
android:gravity="top|start"
android:inputType="textMultiLine"
android:lines="8"
android:maxLines="10"
android:minLines="6"
android:padding="4dp"
android:scrollbars="vertical"
android:theme="@style/EditTheme1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/titlec" />
MYlog:
2018-12-17 14:22:34.460 19140-19140/abc.sample I/TAFragment: km: 11
2018-12-17 14:22:34.460 19140-19140/abc.sample I/TAFragment: newExpense: km text 11
我已经做了一个小时了,我错过了什么
更新-我的pojo
public class TravelModel {
String km,traveltype,date,location,comment;
double amount;
public TravelModel(String km, String traveltype, String date, String location, String comment, double amount) {
this.km = km;
this.traveltype = traveltype;
this.date = date;
this.location = location;
this.comment = comment;
this.amount = amount;
}
public String getKm() {
return km;
}
public void setKm(String km) {
this.km = km;
}
public String getTraveltype() {
return traveltype;
}
public void setTraveltype(String traveltype) {
this.traveltype = traveltype;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
}
你必须像下面这样写
kms.setText(String.valueOf(m.getKm()));
因为getKm()返回int值。您不能直接将int值设置为
EditText
或TextView
。因此,您需要将其转换为字符串
,然后在必须将其设置为查看
后,您可以尝试以下代码段:
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
kms.setText(m.getKm());
}
});
我认为,如果您更改xml编辑文本字段样式,它可能会工作。在这里,您使用了maxlines=“1”,并添加了一些限制高度的边距值=“50dp”。所以我假设,'m.getKm()'值没有得到适当的空间来分配 在新的风格中,它将起作用。或者请提供完整的xml/样式,这有助于获得解决方案的原始原因
注意:我不知道你是否清楚我的意思,只要想想在50dp空间中25-30sp文本不会正确显示。不起作用m.getKm()已经返回了一个字符串,您可以用您的POJO类更新您的问题吗?我添加了我的pojoCan,您可以验证Java文件中
tiekm
EditText的对象是kms`。我想您的问题来自xml
,你能显示整个xml
文件吗?你应该检查你的背景文件edit\u border.xml。它与xml有关。请确保文本颜色与背景不匹配。键入并检查文本是否可见。xml正常,保存表单时文本显示的主题也正常。这是另外一件事,我不知道是什么…看到我接受的答案了。我们为什么要这么做?这很有效…你能解释一下发生了什么吗。谢谢!!!!!!!!!!!这是为了确保editText.setText()始终设置在主线程而不是后台线程上。那么其他editText是如何工作的呢??我的表格里大约有10张。只是这不起作用我明白;-)。你这样试试。调试你的应用程序并放置断点并观察线程,当你到达km.setText()时,你会发现线程切换。
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
kms.setText(m.getKm());
}
});