0

我在文本视图中设置数字时遇到问题,它只显示第一个数字并截断其余数字。例如,如果我设置这个字符串“12345”它只显示“1”。请注意,如果我在 setText 方法中对该数字进行硬编码,它可以工作,但是当我通过 Integer.toString 设置数字时,它不会。我还为调试做了一个 Toast,它显示的字符串是正确的。

这是我的活动代码:

int inviteCount = inviteArray.size();
String inviteCountString = Integer.toString(inviteCount);
inviteCountTextView.setText(inviteCountString);
showToast(inviteCountString); 

protected void showToast(final String text) {
    //   Creates a Toast when there is an error
    runOnUiThread(new Runnable(){
        @Override
        public void run() {
            Toast.makeText(RootActivity.this, text, Toast.LENGTH_SHORT).show(); 
        }
    });
}

这是布局文件的代码

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/inviteImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/friend_invitations_background" />

    <TextView
        android:id="@+id/inviteNumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginBottom="2dp"
        android:text="0"
        android:textColor="#88ffffff"
        android:textSize="12sp" />
</FrameLayout>

提前致谢。

编辑:

这是错误的屏幕截图。如您所见,吐司显示 10。但在顶部的 texfield 上仅显示 1。同样,如果我写 android:text="10" 它显示正确。

错误

4

1 回答 1

1

这无疑是一个布局问题。您可以使用 Eclipse 中的 ADT 工具检查布局层次结构。可能TextView通过FrameLayout仅测量其直接子尺寸(即ImageView.

老实说,我很困惑为什么它的初始值是正确设置尺寸以及为什么尺寸不是由所有孩子确定的。

我建议FrameLayoutTextView用带有背景的 a 替换低效的构造。也许为了缩小问题范围,您可以简化该视图周围的布局。

例如:

<TextView
    android:id="@+id/inviteNumber"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginBottom="2dp"
    android:text="0"
    android:textColor="#88ffffff"
    android:textSize="12sp"
    android:background="@drawable/friend_invitations_background" />
于 2013-09-29T18:45:04.900 回答