userInputs.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER:
int val = (Integer) userInputs.getTag();
switch (val) {
case USER_INP_NAME:
newUser = new Users();
newUser.setUsersName(userInputs.getText()
.toString());
userInputs.setTag(USER_INP_NUMBER);
userInputs.setText("");
userInputs.setHint("User Name");
break;
case USER_INP_NUMBER:
newUser.setUnitWeight(Integer
.parseInt(userInputs.getText().toString()));
userInputs.setTag(USER_INP_STATE);
userInputs.setText("");
userInputs.setHint("User Number");
break;
case USER_INP_STATE:
newUser.setShelfLife(Integer
.parseInt(userInputs.getText().toString()));
userInputs.setTag(USER_INP_NAME);
userInputs.setText("");
userInputs.setHint("User State");
uList.add(newUser);
adapter.notifyDataSetChanged();
break;
default:
break;
}
default:
break;
}
}
return false;
}
});
情景 -
它是一个Android应用程序,并且有一个EditText框,我需要依次接受多种类型的输入。此订单已预定义。在USER_INP_NAME
对象newUser
上创建。在使用此对象设置此多个属性之后。最后在USER_INP_STATE
上将对象添加到列表中。这个循环重复了。
我是一名“C”程序员,因此以程序导向的方式编码。开关盒现在看起来很难看,有没有更好的解决方案呢?
答案 0 :(得分:0)
您可以使用正则表达式。例如:
public String currentInput(String input){
if(input.matches("[0-9]*")){
return "numbers only";
}
if(input.matches("Some RegEx")){
return "something else..";
}
if(...
}