我正在开展一项活动,其中我采用了edittext和textview。我必须从edittext获取整数值并将其设置在textview上。
我必须在edittext上使用10位数字(移动号码),并且只要edittext列获得10位数字,它就会在同一活动中的textview上自动设置10位数字。
我已经以这种方式实施了
使用
获取edittext的价值Integer.parseInt(edittext.getText().toString());
在String str。
将条件应用于(str.length == 10)
并将其显示在textview上。
由于上述过程不起作用,所以尽量帮助我的朋友。
我正在处理这段代码:
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);
}
}
});
}
}
答案 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);
}
}