我在向文本视图中设置数字时遇到问题,它只显示第一个数字并截断其余数字。例如,如果我将此字符串设置为“12345”,则它仅显示“1”。请注意,如果我在setText方法中对该数字进行硬编码,它会起作用,但是当我通过Integer.toString设置数字时,它不会。我也做了一个Toast进行调试,它显示的String是正确的。
以下是我的活动代码:
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>
提前致谢。
编辑:
以下是错误的屏幕截图。正如你所看到的,toast显示为10.但是在顶部的texfield只显示1.再次,如果我写android:text =“10”它显示正确。
答案 0 :(得分:1)
这无疑是一个布局问题。您可以使用Eclipse中的ADT工具检查Layout Hierarchy。可能TextView
的宽度被FrameLayout
限制,仅测量其直接子维度,即ImageView
的维度。
说实话,我很困惑为什么它的初始值是正确设置尺寸以及为什么尺寸不是由所有孩子决定的。
我建议用FrameLayout
替换TextView
的低效构造,背景为<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" />
。也许为了缩小问题范围,您可以简化该视图的布局。
例如:
{{1}}