【问题标题】:EditText with default value具有默认值的 EditText
【发布时间】:2015-01-30 06:38:55
【问题描述】:

我使用 bootstrap 和 .input-group-addon 将元素添加或附加到单个表单元素,例如 TextArea 输入类型的表单。 前置简单意味着它显示它包含用户禁止编辑的值。

如何在我的安卓应用程序中执行此操作?它是我的 XML 还是什么? 请帮忙...

【问题讨论】:

  • 尝试在布局xml文件中使用android:text属性
  • 你能用一些例子解释一下你想达到什么目的吗??
  • @pmcs 管理发布一些代码
  • 所以您想将预定义值列表添加到不应由用户编辑的文本框(Edittext)中吗?
  • 如果你想显示简单的预定义文本,那么你可以试试developer.android.com/reference/android/widget/… simple drawables。

标签: android android-layout android-activity


【解决方案1】:

我认为下面的代码会帮助你做到这一点。

解决方案 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://”。

【讨论】:

    【解决方案2】:

    EditText 扩展 TextView 扩展 View 类。而View.java 类有方法setText,它几乎适用于扩展View.java 的每个视图。

    结论

    EditText.setText("your Text here"); //set default value
    
    EditText.setHint("your Text here"); //set hint
    

    在 XML 中

     android:text="@string/yourStringText"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 2022-10-25
      • 1970-01-01
      • 2014-08-24
      相关资源
      最近更新 更多