我使用bootstrap和.input-group-addon将元素前置或附加到单个表单元素,如TextArea输入类型的表单。 前置简单意味着它显示它包含禁止用户编辑的值。
如何在我的andriod应用中执行此操作?它与我的XML或什么? 请帮忙......
答案 0 :(得分:5)
我认为以下代码可以帮助您这样做。
解决方案1
TextView
只会显示前缀文字,EditText
可以由用户选择。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@android:color/white" >
<TextView
android:id="@+id/txtTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="http://"
android:textColor="@android:color/darker_gray" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:text="www.google.com"
/>
</LinearLayout>
在上面的布局中,您会看到TextView
包含您的默认文字,但用户只能在EditText
中书写。所以用户不会对这种技巧有所了解。
解决方案2
final EditText edt = (EditText) findViewById(R.id.editText1);
edt.setText("http://");
Selection.setSelection(edt.getText(), edt.getText().length());
edt.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// 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 afterTextChanged(Editable s) {
if(!s.toString().contains("http://")){
edt.setText("http://");
Selection.setSelection(edt.getText(), edt.getText().length());
}
}
});
此解决方案不允许用户从其EditText
输入中删除“http://”。
答案 1 :(得分:3)
EditText
扩展TextView
扩展View
类。 View.java
类有方法setText
,它几乎适用于扩展View.java
的每个视图。
<强> Conclustion 强>
EditText.setText("your Text here"); //set default value
EditText.setHint("your Text here"); //set hint
在Xml中
android:text="@string/yourStringText"