光标位于零处的editText位置

Posted

技术标签:

【中文标题】光标位于零处的editText位置【英文标题】:Cursor resides in editText position at zero 【发布时间】:2013-11-06 18:43:59 【问题描述】:

使用我创建的键盘布局输入编辑文本值时,光标位于起始位置。光标位置不会根据输入的值移动。有没有办法实现这一点。 代码如下:

String zip;
OnClickListener clickListener = new OnClickListener() 

            @Override
            public void onClick(View v) 
                final int id = v.getId();
                if (id == R.id.button0) 
                    zip = zip + "0";
                    editZip.setText(zip);
                 else if (id == R.id.button1) 
                    zip = zip + "1";
                    editZip.setText(zip);
                 else if (id == R.id.button2) 
                    zip = zip + "2";
                    editZip.setText(zip);
                 else if (id == R.id.button3) 
                    zip = zip + "3";
                    editZip.setText(zip);
                 else if (id == R.id.button4) 
                    zip = zip + "4";
                    //editZip.requestFocus();
                    editZip.setText(zip);
                 else if (id == R.id.button5) 
                    zip = zip + "5";
                    editZip.setText(zip);
                 else if (id == R.id.button6) 
                    zip = zip + "6";
                    editZip.setText(zip);
                 else if (id == R.id.button7) 
                    zip = zip + "7";
                    editZip.setText(zip);
                 else if (id == R.id.button8) 
                    zip = zip + "8";
                    editZip.setText(zip);
                 else if (id == R.id.button9) 
                    zip = zip + "9";
                    editZip.setText(zip);
                 else if (id == R.id.buttonDel) 
                    if (zip.length() > 0) 
                        zip = zip.substring(0, zip.length()-1);
                        editZip.setText(zip); 
                       
                

            
        ;

【问题讨论】:

你真的应该使用开关来提高可读性...... 【参考方案1】:

使用setSelection(int) 移动光标位置。

editZip.setSelection(editZip.getText().length());

最后进入OnClickListener 代码。


一些 SO 参考

    How to set cursor position in EditText? Place cursor at the end of text in EditText

【讨论】:

以上是关于光标位于零处的editText位置的主要内容,如果未能解决你的问题,请参考以下文章

EditText光标位置

Android EditText获取光标位置并插入字符删除字符

Android EditText中字符大小与光标位置

刚学Android,EditText的光标位置怎么调??

EditText中的方法setText()改变光标的位置[重复]

Edittext禁止光标选中部分字符