0

我正在使用 TextWatcher,因此当我开始在编辑文本中输入内容时,它会全部显示为大写,但我需要添加一个功能,当我按下 时ENTER,输入的所有内容都应该是小写字母。我该怎么做?

这是文本观察器

scene.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {            

            }
                @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                            int arg3) {             
            }
            @Override
            public void afterTextChanged(Editable arg0) {
                  String s=arg0.toString();

              if(!s.equals(s.toUpperCase()))
              {
                 s=s.toUpperCase(); 
                 scene.setText(s);
                 scene.setSelection(scene.getText().length());

              }
            }
        }); 

这是处理 ENTER 事件的代码

scene.setOnKeyListener(new OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                // TODO Auto-generated method stub
                if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                        (keyCode == KeyEvent.KEYCODE_ENTER)) {
                    String s = scene.getText().toString();
                    s=s+'\n';
                    scene.setText(s);
                    scene.setSelection(scene.getText().length());
                        ib2(scene);

                      return true;
                    }
                return false;
            }

        });
4

1 回答 1

2

我猜你需要小写

String input = "Cricket!";
String upper = input.toUpperCase(); //stores "CRICKET!"
String lower = input.toLowerCase(); //stores "cricket!"

在你的 onKey 方法中这样做

  String s = scene.getText().toString();
  s=s.toLowerCase();
  scene.setText(s);

像这样更新您的 setOnKeyListener 方法

scene.setOnKeyListener(new OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                // TODO Auto-generated method stub
                if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                        (keyCode == KeyEvent.KEYCODE_ENTER)) {


                      String s = scene.getText().toString();
                      s=s.toLowerCase();
                      scene.setText(s);
                      scene.setSelection(scene.getText().length());
                        ib2(scene);

                      return true;
                    }
                return false;
            }

        });
于 2013-10-23T07:23:22.300 回答