如何在xml中为特定值的预定义输入创建输入?例如,我希望用户输入的血压可以是120/80,所以在我的输入中我希望用户输入已经放置正斜杠的输入字段。请指教。 这就是我所拥有的
我最接近的就是这个
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="3"
android:gravity="start"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<android.support.design.widget.TextInputLayout
android:layout_weight="0.8"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/patientBloodPressure1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:imeOptions="actionNext"
android:maxLines="1"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1.45"
android:layout_gravity="center_horizontal|center_vertical"
android:gravity="center"
android:padding="2dp"
android:text="@string/slash"
android:textSize="14sp"
android:textStyle="bold" />
<android.support.design.widget.TextInputLayout
android:layout_weight="0.75"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/patientBloodPressure2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:imeOptions="actionNext"
android:maxLines="1"
android:textSize="14sp" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
答案 0 :(得分:0)
如果你想这么简单,
您应该使用文本观察器,它还可以帮助您在运行时验证值。
您可以在textwatcher中添加验证,例如:
将字符串分成两部分,并检查这些值是否属于您各自的值。
当字符串将超过3
的长度时,也会添加一个分隔符( - )答案 1 :(得分:0)
选项很少。 首先,您可以尝试组合2个edittext,一个用于斜杠之前,一个用于之后(并确保它们看起来像一个)
第二个选项是使用TextWatcher,就像他们在信用卡到期日期一样
editText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (before == 1 && count == 2 && s.charAt(s.length()-1) != '/') {
editText.setText(editText.getText() += "/";
}
if (editText.getText().toString().toCharArray().length < 3) {
editText.setText(editText.getText().toString().replace("/", ""));
}
}
});
最后,创建一个像这样的自定义编辑文本: https://github.com/woxingxiao/XEditText
答案 2 :(得分:0)
使用/
将非常困难。你可能会陷入一些边缘情况,那些血压低的人应该能够输入80/50,在这种情况下你不能使用3位数分割来自动添加android:hint
值。
我建议您使用2个单独的字段,使用Blood Pressure (TextView Label)
_____MAX_____ / ______MIN______
提供更好的说明。像
<div class="modal-body">
{% get_available_languages as languages %}
{% for lang_code, lang_name in languages %}
{% language lang_code %}
<a href="{% url 'home' %}" class="btn lang-btn {% ifequal request.LANGUAGE_CODE lang_code %}selected{% endifequal %}">{{lang_code|lang_name}}</a>
{% endlanguage %}
{% endfor %}
</div>