在光标位置Editext处设置字符

时间:2015-08-17 12:22:26

标签: android-edittext settext

我的布局有一个editext字段和一些设置文本的按钮。我不知道为什么有些按钮可以在当前光标位置设置文本,而其他按钮则不能。

详细信息,数字" 0,1,2"可以插入到当前光标位置但加号字符#34; +"。

我的main.xml

<RelativeLayout
    android:id="@+id/displayLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="45"
    android:padding="10dp">

    <EditText
        android:id="@+id/result"
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:background="#ffff"
        android:ellipsize="end"
        android:inputType="number" />

 </RelativeLayout>

在我使用的当前光标位置设置文字:

int start =editText.getSelectionStart(); //get the the cursor position
String s = "Some string";
editText.getText().insert(start, s); //get the text and insert the String

Onclick方法

 @Override
    public void onClick(View v) {
    EditText result = (EditText) getActivity().findViewById(R.id.result);

    int start = result.getSelectionStart(); 

    switch (v.getId()) {

        case R.id.digit0:
            result.getText().insert(start, "0");
            break;
        case R.id.digit1:
            result.getText().insert(start, "1");
            break;

        case R.id.digit2:
            result.getText().insert(start, "2");
            break;

        case R.id.plus:
            result.getText().insert(start, "+");
            break;
     }

}

我希望有人能帮助我找出问题所在。谢谢你,我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

如果您将+设置为EditText,则

android:inputType="number"不是有效字符。你想输入一个电话号码吗?您可以尝试android:inputType="phone"