我希望使用微调器编辑编辑文本框。如果人选择第一个选项,我想在数字的开头添加一个负号。如果一个人选择第二个选项,负号应该消失。这是我试图做的,我得到负号,但当我选择其他选项时它不会消失:
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
case R.id.vspin:
if (arg2 == 0) {
latitudeinput.setText("" + latitudeinput.getText().toString(),
TextView.BufferType.EDITABLE);
} else {
latitudeinput.setText("-" + latitudeinput.getText().toString(),
TextView.BufferType.EDITABLE);
}
break;
case R.id.hspin:
if (arg2 == 0) {
longitudeinput.setText(
"" + longitudeinput.getText().toString(),
TextView.BufferType.EDITABLE);
} else {
longitudeinput.setText("-"
+ longitudeinput.getText().toString(),
TextView.BufferType.EDITABLE);
}
break;
}
}
答案 0 :(得分:0)
您需要检查edittext中的第一个字符,如果是' - ',请将其删除
if (arg2 == 0) {
if(latitudeinput.getText().toString().length()<1){
latitudeinput.setText("" + latitudeinput.getText().toString();
return;
}
if(latitudeinput.getText().toString().charAt(1)=='-'){
latitudeinput.setText("" + latitudeinput.getText().toString().substring(1),
TextView.BufferType.EDITABLE);
}
}
else{
latitudeinput.setText("-" + latitudeinput.getText().toString(),
TextView.BufferType.EDITABLE);
}
答案 1 :(得分:0)
在你的情况下:R.ID。?使用以下代码
String s = latitudeinput.getText().toString().trim();
if (arg2 == 0) {
if(s.contains("-")){
latitudeinput.setText(s.subSequence(1, s.length()),
TextView.BufferType.EDITABLE);
}else{
latitudeinput.setText(s.subSequence(1, s,
TextView.BufferType.EDITABLE);
}
} else {
if(!s.contains("-")){
latitudeinput.setText("-" +s,
TextView.BufferType.EDITABLE);
}else{
latitudeinput.setText(s.subSequence(1, s,
TextView.BufferType.EDITABLE);
}
}