我认为以下代码可以帮助您这样做。
的 解决方案1 强>
TextView 将只显示前缀文本,和 EditText 可以是用户的选择。
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()); } } });
此解决方案不允许用户从其中删除“http://” EditText 输入。
EditText 扩展 TextView 延伸 View 类。和 View.java class有方法 setText 这几乎适用于每个延伸的视图 View.java 。
View
View.java
setText
的 Conclustion 强>
EditText.setText("your Text here"); //set default value EditText.setHint("your Text here"); //set hint
的 在Xml中 强>
android:text="@string/yourStringText"