如何从android中的editText字段计算多个电话号码和短信号码?

时间:2017-04-01 06:48:13

标签: android xml

我面临两个问题。   1.从editText字段计算多个电话号码。   2.在跨越特定字符数后计算SMS号码。

<android.support.design.widget.TextInputLayout
                android:id="@+id/phoneContainer"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:counterEnabled="true"
                app:counterMaxLength="50">

                <com.andreabaccega.widget.FormEditText
                    android:id="@+id/idContacts"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="Recipients"
                    android:ems="10"
                    android:inputType="phone"
                    android:padding="15dp" />
</android.support.design.widget.TextInputLayout>

在这里,我可以计算电话号码的字符。我需要统计整个电话号码。例如:如果用户在电话编辑字段中键入012346771233,02546547589,它将计为2.但在我的情况下,它是计数单我搜索了很多,但找不到任何解决方案。

其次,我有一个editText字段,用户可以在其中输入消息。当用户跨越字符的特定数字(160个字符)时,它将执行2个操作。它将增加sms编号并设置字符编号(146个字符) )为下一个短信。

<android.support.design.widget.TextInputLayout
                    android:id="@+id/textContainer"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:counterEnabled="true"
                    app:counterMaxLength="160">

                    <com.andreabaccega.widget.FormEditText
                        android:id="@+id/idMsg"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"

                        android:ems="10"
                        android:hint="@string/message"
                        android:inputType="text|textMultiLine|textAutoCorrect"
                        android:padding="10dp"
                        whatever:emptyErrorString="Message can not be empty."
                        whatever:testType="alpha" />
</android.support.design.widget.TextInputLayout>

在我的情况下,我可以计算字符,但我如何计算短信数字并为下一个短信设置counterMaxLength?

1 个答案:

答案 0 :(得分:0)

对于您的第一个问题,您可以在EditText onchange listener

中进行计算
yourEditText.addTextChangedListener(new TextWatcher() {

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

        if (s.length() >= 0) {

            String []phnArray = s.toString().split(",");
            int phCount  = phnArray.length;
        }
    }

    @Override
    public void afterTextChanged(Editable s) {

    }
});

对于你的第二个问题,我不清楚你真正想要的是什么。

如果你想检查长度是否超过160,那么你可以检查

if(s.length > 160){
    //do your require changes here
}