如何将光标设置到editText中

3
我有两个EditText,如何将光标设置在右侧的EditText中?
 EditText emailE = (EditText) findViewById(R.id.editTextEmailLogin);
 EditText passwordE = (EditText)findViewById(R.id.editTextPasswordLogin);
 String email = emailE.getText().toString().trim();
 String password = passwordE.getText().toString().trim();

如果用户按下“登录”按钮,并且电子邮件EditText为空,则将光标设置在电子邮件EditText中。密码EditText也是同样的处理方式。
if (TextUtils.isEmpty(email)){
        Toast.makeText(this, getResources()"email is empty", Toast.LENGTH_SHORT).show();
        //set cursor in Email editText
        emailE.setSelection(0);
        return;
    }
    if(TextUtils.isEmpty(password)){
        Toast.makeText(this,"password is empty", Toast.LENGTH_SHORT).show();
        //set cursor in Password editText
       passwordE.setSelection(0);
        return;
    }
5个回答

2

试试这个:

if (TextUtils.isEmpty(email)){
        Toast.makeText(this, getResources()"email is empty", Toast.LENGTH_SHORT).show();
        //set cursor in Email editText
        emailE.requestFocus();
        return;
    }
    if(TextUtils.isEmpty(password)){
        Toast.makeText(this,"password is empty", Toast.LENGTH_SHORT).show();
        //set cursor in Password editText
       passwordE.requestFocus();
        return;
    }

2

您可以像这样使用EditText的requestFocus();方法:

if (TextUtils.isEmpty(email)){
    Toast.makeText(this, getResources()"email is empty", Toast.LENGTH_SHORT).show();
    //set cursor in Email editText
    emailE.requestFocus();
    return;
}
if(TextUtils.isEmpty(password)){
    Toast.makeText(this,"password is empty", Toast.LENGTH_SHORT).show();
    //set cursor in Password editText
   passwordE.requestFocus();
    return;
}

2
etext1.setSelection(Your position)

或者

 EditText etext1 = (EditText)findViewById(R.id.etext1 );
    etext1.setSelection(etext1.getText().length());  

或者

etext1 .requestFocus(Your_Text.length());

也可以尝试这个链接: 查看这里


2
尝试使用 .requestFocus(); 方法。

1
EditText editText = (EditText) findViewById(R.id.myTextViewId);


if (TextUtils.isEmpty(email)){
    Toast.makeText(this, getResources()"email is empty", Toast.LENGTH_SHORT).show();
    //set cursor in Email editText
    emailE.requestFocus();
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(emailE, InputMethodManager.SHOW_IMPLICIT);
    return;
}
if(TextUtils.isEmpty(password)){
    Toast.makeText(this,"password is empty", Toast.LENGTH_SHORT).show();
    //set cursor in Password editText
    passwordE.requestFocus();
    InputMethodManager imm2 = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm2.showSoftInput(passwordE, InputMethodManager.SHOW_IMPLICIT);
    return;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接