使用Spinner编辑文本字段

时间:2013-12-26 10:52:37

标签: android android-edittext

我希望使用微调器编辑编辑文本框。如果人选择第一个选项,我想在数字的开头添加一个负号。如果一个人选择第二个选项,负号应该消失。这是我试图做的,我得到负号,但当我选择其他选项时它不会消失:

@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;
    }

}

2 个答案:

答案 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);
                }
            }