EditText获取值以传递Textview

时间:2014-05-20 04:59:58

标签: java android android-edittext textview

我正在开展一项活动,其中我采用了edittext和textview。我必须从edittext获取整数值并将其设置在textview上。

我必须在edittext上使用10位数字(移动号码),并且只要edittext列获得10位数字,它就会在同一活动中的textview上自动设置10位数字。

我已经以这种方式实施了

  1. 使用

    获取edittext的价值
    Integer.parseInt(edittext.getText().toString());
    

    在String str。

  2. 将条件应用于(str.length == 10)并将其显示在textview上。

  3. 由于上述过程不起作用,所以尽量帮助我的朋友。

    我正在处理这段代码:

    public class MobileNo extends Activity {
    
            EditText et;
            TextView tv;
            int i;
    
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
    
                et = (EditText) findViewById(R.id.edit);
                tv = (TextView) findViewById(R.id.text1);
    
                et.getText().toString();
    
                et.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 textVal) {
                        // TODO Auto-generated method stub
                        Editable inputNo = textVal;
                        if (inputNo.length() == 10) {
                            tv.setText(inputNo);
                        }
    
                    }
                });
    
            }
        }
    

1 个答案:

答案 0 :(得分:0)

我会尝试:

            @Override
            public void afterTextChanged(Editable textVal) {
                String inputNo = textVal.toString();
                if (inputNo.length() == 10) {
                    tv.setText(inputNo);
                }

            }

如果您的电话号码格式为“(800)549-2992”或“800-549-2992”,并且您只需要这些号码,那么您必须执行以下操作:

            @Override
            public void afterTextChanged(Editable textVal) {
                // takes out all non-digits from string
                String inputNo = textVal.toString().replaceAll("[^\\d]","");
                if (inputNo.length() == 10) {
                    tv.setText(inputNo);
                }

            }