我希望创建一个带有3-4行提示的编辑文本,点击该提示,允许用户只输入一行文本。 我试过用
android:singleLine = "true"
但这也限制了暗示的长度。
如何为两者分配不同数量的行?
谢谢
答案 0 :(得分:1)
您可以在编辑文本中添加TextWatcher并比较文本的长度。 如果为0,则显示提示,并以编程方式设置editText.setSingleLine(false)。如果它大于0,则使用setSingleLine(true)限制editText。
伪代码:
public void some(){
final EditText t = findViewById(someName);
t.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
t.setSingleLine(t.getText().toString().length() > 0);
}
});
}
答案 1 :(得分:0)
试试这个:
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:hint="your hint here your hint here your hint here your hint here your hint here your hint here your hint here your hint here your hint here your hint here "
android:ems="10" >
<requestFocus />
</EditText>
答案 2 :(得分:0)
以编程方式设置textview
属性:
myText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(hasFocus){
myText.setSingleLine(true);
//myText.setMaxLines(1);
// myText.setLines(1);
}
else if(myText.matches(""))
{
myText.setSingleLine(false);
}
}
});