dmo*_*mon 16 android cursor android-edittext
这主要是我的一个小小的烦恼,但是让我感到厌烦的是,默认行为或EditTextPreferences是将光标放在字符串的开头.这对我来说根本没有意义.在人类已知的几乎任何其他界面(精细,ME)中,聚焦于文本字段会自动将光标发送到END.
所以.是否有(简单)方法来覆盖这个?我知道我可以延伸EditTextPreference并setSelection()手动调用,但对于这样一个简单的问题,这似乎是一个非常复杂的解决方案.
与lukeuser的解决方案类似,您可以定义OnPreferenceClickListener内联或类变量:
final OnPreferenceClickListener _moveCursorToEndClickListener =
new OnPreferenceClickListener()
{
@Override
public boolean onPreferenceClick(Preference preference)
{
EditTextPreference editPref = (EditTextPreference)preference;
editPref.getEditText().setSelection( editPref.getText().length() );
return true;
}
};
[...]
EditTextPreference myPref = (EditTextPreference)findPreference( "MyPref" );
myPref.setOnPreferenceClickListener( _moveCursorToEndClickListener );
Run Code Online (Sandbox Code Playgroud)
要么
EditTextPreference myPref = (EditTextPreference)findPreference( "MyPref" );
myPref.setOnPreferenceClickListener(
new OnPreferenceClickListener()
{
@Override
public boolean onPreferenceClick(Preference preference)
{
EditTextPreference editPref = (EditTextPreference)preference;
editPref.getEditText().setSelection( editPref.getText().length() );
return true;
}
} );
Run Code Online (Sandbox Code Playgroud)
我最终扩展EditTextPreference并覆盖了该showDialog方法:
@Override
protected void showDialog(Bundle state) {
super.showDialog(state);
Handler delayedRun = new Handler();
delayedRun.post(new Runnable() {
@Override
public void run() {
EditText textBox = getEditText();
textBox.setSelection(textBox.getText().length());
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2995 次 |
| 最近记录: |