在EditText的末尾添加单位符号

时间:2012-12-25 01:10:57

标签: android

我有一个EditText,其类型为numberDecimal。我希望在值的末尾有单位符号(例如m,km,kg,g)。我在stackoverflow找到了许多帖子,告诉我们使用TextWatcher或InputFilter,但我真正喜欢的是限制这个单位符号不能为用户编辑。

因此,当您在文本框中编辑值时,无法移动courser来操作/删除符号。它基本上不是价值的可编辑部分。

我确信这可以实现,但我不确定需要编写多少自定义代码才能使其正常工作。有没有SDK支持?

ISMAR

2 个答案:

答案 0 :(得分:0)

        <LinearLayout
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="0.70"
            android:gravity="center_horizontal"
            android:padding="4dip" >

            <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >

                <EditText
                    android:id="@+id/browseurl"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginLeft="5dip"
                    android:imeOptions="actionGo"
                    android:textColor="#BCBCBC"
                    android:textSize="14dip"
                    android:typeface="serif" />

                <ImageButton
                    android:id="@+id/cross"
                    android:layout_width="25dip"
                    android:layout_height="25dip"
                    android:layout_alignParentRight="true"
                    android:layout_centerInParent="true"
                    android:background="@android:drawable/ic_menu_close_clear_cancel"
                    android:clickable="true"
                    android:focusable="false" />
            </RelativeLayout>
        </LinearLayout>

将ImageButton替换为单位的文本框或图像按钮。

答案 1 :(得分:0)

感谢您的提示。这是我的解决方案,我有一个线性布局,左边和右边有20个边距。在布局内部,我有一个EditText和一个TextViw。我在EditText上将权重设置为1,以便填充父视图中的任何剩余空间。

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="20dip"
    android:layout_marginRight="20dip"
    android:orientation="horizontal" >

    <EditText
        android:id="@+id/value_edittext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:inputType="numberDecimal"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/value_unit_symbol"
        android:layout_width="wrap_content"
        android:layout_height="25dip"
        android:text="kg"
        android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>