MaskedEditText无法获取文本

时间:2015-05-30 09:33:16

标签: java android xml android-edittext

对不起我的英文。
我正在使用图书馆MaskedEditText。一切正常,但我可以得到文字(只有文字) 示例:我有XML:

<br.com.sapereaude.maskedEditText.MaskedEditText 
    android:id="@+id/phoneNumber"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="3dp"
    android:background="@null"
    android:inputType="number"
    mask:mask="(###) ###-##-##"
>
</br.com.sapereaude.maskedEditText.MaskedEditText>

如果用户输入文字:(111) 111-11-11
我应该只获得1111111111

以下是我的代码

MaskedEditText text = (MaskedEditText) findViewById(R.id.phoneNumber);
Toast.makeText(MainActivity.this, "Text without mask: " +
    text.getText(true), Toast.LENGTH_LONG).show();

错误:The method getText() in the type EditText is not applicable for the arguments (boolean)

更新
如果我使用这些方法:

Log.e("Mask ", text.getMask());
Log.e("getCharRepresentation ",
    String.valueOf(text.getCharRepresentation()));
Log.e("getCharRepresentation ", text.getText().toString());

其输出:

05-30 12:41:40.448: E/Mask(7980): (###) ###-##-##
05-30 12:41:40.448: E/getCharRepresentation(7980): #
05-30 12:41:40.448: E/getCharRepresentation(7980): (111) 111-11-11

3 个答案:

答案 0 :(得分:4)

好的,假设您只想删除()- ..

String str = String.valueOf(text.getCharRepresentation());
str = str.replaceAll("\\D", ""); // Replace all non-digits

以下是一个例子:

public class TestReplacement {

    public static void main (String [] args) {

        String str = "(111) 111-11-11";

        System.out.println("String before replacement: " + str);

        str = str.replaceAll("\\D", ""); // Replace all non-digits

        System.out.println("String after replacement: " + str);
    }
}

<强>输出:

String before replacement: (111) 111-11-11
String after replacement: 1111111111

答案 1 :(得分:1)

  

错误:The method getText() in the type EditText is not applicable for the arguments (boolean)

这就是说,方法getText()不能采用布尔(true)参数。 尝试不使用true。如果这也返回括号和东西检查MaskedEditText添加的方法。

答案 2 :(得分:1)

获取没有遮罩和提示的文本,

EditText.getRawText()