在我的应用程序中,我有三个用户名(Name,FirstName,LastName)的编辑文本。如果用户在名称字段中输入名称(John Basker),则表示John自动发送到firstname,Basker发送到lastname。
我希望在名称字段填满时发生此过程。怎么做?
我的代码:
arrowDown.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String personal_name = name.getText().toString();
String [] array=personal_name.split("\\s+");
firstname.setText(String.valueOf(array[0]));
lastname.setText(String.valueOf(array[1]));
}
});
logcat的:
我在这一行收到错误:firstname.setText(String.valueOf(array[0]));
java.lang.ArrayIndexOutOfBoundsException:length = 1;索引= 1
答案 0 :(得分:1)
//get value from editText
String str=editText.getText().toString();
//str = "firstname lastname";
String[] splited = str.split("\\s+");
//split by space
splited[0] is firstname
splited[1] is lastname
//then it set to other editText
if(splited[0]) != null && !splited[0]).isEmpty())
{
editText1.setText(String.valueOf(splited[0]));
}
if(splited[1]) != null && !splited[1]).isEmpty())
{
editText2.setText(String.valueOf(splited[1]));
}
答案 1 :(得分:0)
使用以下代码检测空格
Pattern pattern = Pattern.compile("\\s");
Matcher matcher = pattern.matcher(s);
boolean found = matcher.find();
还使用SUBSTRING函数将字符串拆分为两个字符串a和b 例如:JOHN PATRIK然后substring(0,3)