Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Edittext setText不显示任何文本,但记录getText()。toString首先显示设置的文本_Android_Android Edittext - Fatal编程技术网

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