2012-06-01 162 views
2

我动态构建EditText。除其他外,我设置了2个属性:hint(.setHint)和inputType(.setInputType)。我的问题:当我调用setInputType,setHint没有效果:空白edittexts保持空白,没有提示。一旦我注释掉setInputType,我会看到所有提示。我需要输入类型和提示。该怎么办?我的代码:setHint does not work with setInputType

private EditText buildTextBox(Property property) 
{ 
    EditText control = new EditText(this); 
    control.setInputType(getInputTypeByPropertyInputType(property.getType()));// android.text.InputType. 
    control.setHint(property.getDisplayName()); 
    return control; 
} 

private int getInputTypeByPropertyInputType(String type) 
{ 
    if (type.equals("integer")) 
    { 
     return android.text.InputType.TYPE_CLASS_NUMBER; 
    } 
    else 
    { 
     return android.text.InputType.TYPE_CLASS_TEXT; 
    } 
} 
+1

我调用的方法之一是control.setGravity(Gravity.CENTER) - 一旦我删除了这个调用,我就能看到所有的提示。我不能解释它为什么会发生,并且我认为这是非常奇怪的行为。 –

回答

2

@Eugene 确保您拨打control.SetHint()调用control.setGravity()和control.setInputType()之前;它对我来说很有用!

  column1 = new EditText(this); 
      column1.setId(i); 
      column1.setHint("Value"); 
      column1.setInputType(InputType.TYPE_CLASS_NUMBER); 
      column1.setGravity(Gravity.RIGHT); 
0

我同意尤金。 消除重力(只是不要使用CENTER),提示文本将恢复正常。 很好找!