我有一个关于android中edittext的问题。如何设置提示居中对齐而文本左对齐?谢谢。
我只想让光标位于edittext的左边和提示中心

最佳答案

你可以用Java代码编程。例如:

final EditText editTxt = (EditText) findViewById(R.id.my_edit_text);

editTxt.setGravity(Gravity.CENTER_HORIZONTAL);

editTxt.setOnKeyListener(new OnKeyListener() {

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {

        if (event.getAction() != KeyEvent.ACTION_UP) return false;

        if (editTxt.getText().length() > 1) return false;

        if (editTxt.getText().length() == 1) {
            editTxt.setGravity(Gravity.LEFT);
        }
        else {
            editTxt.setGravity(Gravity.CENTER_HORIZONTAL);
        }

        return false;
    }
});

一个字也不要漏。它使您的textview在侦听器代码中可见。
您可以将“view v”转换为“onkey”方法中的“textview”,而不是“final”关键字。
2012年3月9日更新:
在这种情况下,可以删除“onKeyListener”并编写“onFocusChangeListener”`
下面是一些代码:
editTxt.setOnFocusChangeListener(new OnFocusChangeListener() {

    @Override
    public void onFocusChange(View v, boolean hasFocus) {

        if (hasFocus) {
            editTxt.setGravity(Gravity.LEFT);
        }
        else {
            if (editTxt.getText().length() == 0) {
                editTxt.setGravity(Gravity.CENTER_HORIZONTAL);
            }
        }
    }
});

09-10 16:24