对不起我的英文。
我正在使用图书馆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
答案 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()