下面列出了android.widget.EditText#setSelection ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void initView() {
mEd_sign = (EditText) findViewById(R.id.ed_sign);
mLl_nickSign = (LinearLayout) findViewById(R.id.ll_nickSign);
mTv_count = (TextView) findViewById(R.id.tv_count);
mJmui_commit_btn = (Button) findViewById(R.id.jmui_commit_btn);
if (getIntent().getStringExtra("group_name") != null) {
mEd_sign.setText(getIntent().getStringExtra("group_name"));
}
if (getIntent().getStringExtra("group_desc") != null) {
mEd_sign.setText(getIntent().getStringExtra("group_desc"));
}
if (getIntent().getStringExtra("old_nick") != null) {
mEd_sign.setText(getIntent().getStringExtra("old_nick"));
}
if (getIntent().getStringExtra("old_sign") != null) {
mEd_sign.setText(getIntent().getStringExtra("old_sign"));
}
mEd_sign.setSelection(mEd_sign.getText().length());
}
private void showGetRoomUI() {
final EditText roomInput = new EditText(this);
roomInput.setText("https://apprtc.appspot.com/?r=");
roomInput.setSelection(roomInput.getText().length());
DialogInterface.OnClickListener listener =
new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
abortUnless(which == DialogInterface.BUTTON_POSITIVE, "lolwat?");
dialog.dismiss();
connectToRoom(roomInput.getText().toString());
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder
.setMessage("Enter room URL").setView(roomInput)
.setPositiveButton("Go!", listener).show();
}
@OnClick({ R.id.zero, R.id.one, R.id.two, R.id.three, R.id.four,
R.id.five, R.id.six, R.id.seven, R.id.eight, R.id.nine })
void onClick(TextView view) {
if (mFocusGrabber.isFocused())
return;
EditText field = getFocusedField();
int at = field.getSelectionStart();
field.getText().replace(at, at + 1, view.getText());
field.setSelection(at + 1);
// updateStartButtonVisibility();
if (field.getSelectionStart() == FIELD_LENGTH) {
// At the end of the current field, so try to focus to the next field.
// The search will return null if no view can be focused next.
View next = field.focusSearch(View.FOCUS_RIGHT);
if (next != null) {
next.requestFocus();
if (next instanceof EditText) {
// Should always start off at the beginning of the field
((EditText) next).setSelection(0);
}
}
}
}
private void showEditUserNameDialog() {
View content = LayoutInflater.from(getContext()).inflate(R.layout.dialog_edit, null);
final EditText editText = content.findViewById(R.id.dialog_edit);
editText.setText(mUser.getUsername());
editText.setSelection(editText.getText().length());
new AlertDialog.Builder(getContext())
.setTitle(R.string.edit_user_name)
.setNegativeButton(R.string.cancel, null)
.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String updateUserName = editText.getText().toString().trim();
if (!mUser.getUsername().equals(updateUserName)) {
updateUserName(updateUserName);
}
}
})
.setView(content)
.show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
processSetTheme(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.showlogcat_activity);
processActionBar(getActionBar());
EditText editText = findViewById(R.id.sla_log_editText);
try {
Process process = Runtime.getRuntime().exec("logcat -d");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String log_line;
String rn = System.getProperty("line.separator");
while ((log_line = bufferedReader.readLine()) != null) {
editText.setText(editText.getText().append(log_line).append(rn));
}
bufferedReader.close();
process.destroy();
editText.setSelection(editText.getText().length());
} catch (IOException e) {
e.printStackTrace();
editText.setText(editText.getText().append(e.getLocalizedMessage()));
}
}
private void setupEditNoteDialog() {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(PopupActivity.this);
LayoutInflater inflater = PopupActivity.this.getLayoutInflater();
final View dialogView = inflater.inflate(R.layout.dialog_edit_note, null);
dialogBuilder.setView(dialogView);
final EditText edt = (EditText) dialogView.findViewById(R.id.edit_note);
edt.setHorizontallyScrolling(false);
edt.setMaxLines(4);
edt.setText(mNoteEditedByUser);
edt.setSelection(mNoteEditedByUser.length());
dialogBuilder.setTitle(R.string.dialog_note);
//dialogBuilder.setMessage("输入笔记");
dialogBuilder.setPositiveButton(R.string.dialog_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
mNoteEditedByUser = edt.getText().toString();
}
});
// dialogBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
// public void onClick(DialogInterface dialog, int whichButton) {
// //pass
// }
// });
AlertDialog b = dialogBuilder.create();
b.show();
}
/**
* rename dialog
*/
public static DialogView inputDialog(Activity activity, String title, final String originData,
final InputCallBack inputCallBack) {
View view = ViewUtil.inflateViewById(activity, R.layout.dialog_layout_input);
final EditText inputEt = view.findViewById(R.id.id_input_et);
if (!StringUtils.isEmpty(originData)) {
inputEt.setText(originData);
inputEt.setSelection(originData.length());
}
DialogView dialogView = new DialogView(activity, view, false);
dialogView.setRightOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String data = inputEt.getText().toString();
if (StringUtils.isEmpty(data)) {
ToastUtils.show(R.string.input_msg);
return;
}
if (data.equals(originData)) {
ToastUtils.show(R.string.input_msg_same_to_origin);
return;
}
if (inputCallBack != null) {
inputCallBack.input(data);
}
}
});
dialogView.setTitle_(title);
dialogView.show();
return dialogView;
}
/**
* Focus the associated EditText and restore its selection state.
*/
public void focusAndRestoreSelectionState() {
EditText focusedEditView = this.getEditText();
int start = this.getSelectionStart();
int end = this.getSelectionEnd();
final int len = focusedEditView.getText().length();
focusedEditView.requestFocus();
// cursor pos is == length, when it's at the very end
if (start <= end && start >= 0 && start <= len && end >= 0 && end <= len) {
focusedEditView.setSelection(start, end);
} else if (end >= 0 && end <= len) {
focusedEditView.setSelection(end);
}
}
private void showInputMethod(EditText editTextMessage) {
editTextMessage.requestFocus();
//如果已经显示,则继续操作时不需要把光标定位到最后
if (!isKeyboardShowed) {
editTextMessage.setSelection(editTextMessage.getText().length());
isKeyboardShowed = true;
}
InputMethodManager imm = (InputMethodManager) container.activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editTextMessage, 0);
container.proxy.onInputPanelExpand();
}
/**
* 设置文本,并将光标移动到文本末尾
* @param editText
* @param text
*/
public static void setText(EditText editText,String text){
if(null != editText && !TextUtils.isEmpty(text)){
editText.setText(text);
editText.setSelection(text.length());
}
}
public static void focusAndShowInputMethod(EditText editText) {
if (editText == null) {
return;
}
editText.requestFocus();
// In case the filter is not working, setText again.
editText.setText(editText.getText());
editText.setSelection(TextUtils.isEmpty(editText.getText()) ? 0 : editText.getText().length());
((InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(editText, 0);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Context context = getActivity();
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
final LayoutInflater dialogInflater = LayoutInflater.from(builder.getContext());
final View view = dialogInflater.inflate(R.layout.dialog_create_dir, null, false);
final EditText text1 = (EditText) view.findViewById(android.R.id.text1);
Utils.tintWidget(text1);
String title = getArguments().getString(EXTRA_DISPLAY_NAME);
if(!TextUtils.isEmpty(title)) {
text1.setText(title);
text1.setSelection(title.length());
}
builder.setTitle(R.string.menu_create_file);
builder.setView(view);
builder.setPositiveButton(android.R.string.ok, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final String displayName = text1.getText().toString();
final String mimeType = getArguments().getString(EXTRA_MIME_TYPE);
String extension = FileUtils.getExtFromFilename(displayName);
final DocumentsActivity activity = (DocumentsActivity) getActivity();
final DocumentInfo cwd = activity.getCurrentDirectory();
new CreateFileTask(activity, cwd,
TextUtils.isEmpty(extension) ? mimeType : extension, displayName).executeOnExecutor(
ProviderExecutor.forAuthority(cwd.authority));
}
});
builder.setNegativeButton(android.R.string.cancel, null);
return builder.create();
}
@SuppressLint("InflateParams")
public EditTextDialogBuilder(Context context, String text, String hint) {
super(context);
View view = LayoutInflater.from(getContext()).inflate(R.layout.dialog_edittext_builder, null);
setView(view);
mTextInputLayout = (TextInputLayout) view;
mEditText = (EditText) view.findViewById(R.id.edit_text);
mEditText.setText(text);
mEditText.setSelection(mEditText.getText().length());
mEditText.setOnEditorActionListener(this);
mTextInputLayout.setHint(hint);
}
public final void formatSelectedText(EditText commentView, int what) {
int start = commentView.getSelectionStart();
int end = commentView.getSelectionEnd();
if (start == -1 || end == -1) {
return;
}
FormatResult result = formatSelectedText(commentView.getText(), what, start, end);
if (result != null) {
commentView.setSelection(result.start, result.end);
}
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
mEditText = (EditText) getActivity().getLayoutInflater().inflate(R.layout.fragment_comment_dialog, null);
if(getArguments().containsKey("comment_content")){
mEditText.setText(getArguments().getString("comment_content"));
mEditText.setSelection(mEditText.getText().length());
}
return new AlertDialog.Builder(getActivity())
.setView(mEditText)
.setPositiveButton(R.string.title_comment, this)
.setCancelable(true)
.setNegativeButton(R.string.title_cancel, null)
.create();
}
public static void addBold(@NonNull EditText editText) {
String source = editText.getText().toString();
int selectionStart = editText.getSelectionStart();
int selectionEnd = editText.getSelectionEnd();
String substring = source.substring(selectionStart, selectionEnd);
String result = "**" + substring + "** ";
editText.getText().replace(selectionStart, selectionEnd, result);
editText.setSelection(result.length() + selectionStart - 3);
}
@Override
protected void onStart() {
super.onStart();
// Set text in EditView
if(external != null) {
EditText noteContents = findViewById(R.id.editText1);
noteContents.setText(external);
noteContents.setSelection(external.length(), external.length());
external = null;
}
}
public static AlertDialog getRenameDialog(final BaseActivity activity,
final File_POJO file,
final BroadcastReceiver broadcastReceiver) {
Theme theme = Settings.getInstance(activity).getThemeInstance(activity);
ContextThemeWrapper wrapper = new ContextThemeWrapper(activity, theme.getDialogThemeRes());
@SuppressLint("InflateParams")
View dialogLayout = LayoutInflater.from(wrapper)
.inflate(R.layout.input_dialog_layout, null, false);
final EditText editText = dialogLayout.findViewById(R.id.edit_text);
String name = file.getName();
int index = name.lastIndexOf(".");
//String fileExtension = name.substring(index, name.length());
name = name.substring(0, index != -1 ? index : name.length());
editText.setText(name);
editText.setSelection(name.length());
AlertDialog dialog = new AlertDialog.Builder(wrapper)
.setTitle(R.string.rename)
.setView(dialogLayout)
.setPositiveButton(R.string.rename, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
final String newFileName = editText.getText().toString();
if (broadcastReceiver != null) {
activity.registerLocalBroadcastReceiver(broadcastReceiver);
}
final File_POJO[] files = new File_POJO[]{file};
Intent intent = FileOperation.getDefaultIntent(activity, FileOperation.RENAME, files)
.putExtra(FileOperation.NEW_FILE_NAME, newFileName);
activity.startService(intent);
}
})
.setNegativeButton(R.string.cancel, null)
.create();
//noinspection ConstantConditions
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
return dialog;
}
private void setSelection(EditText editText, int start, int end) {
if (start >= 0 && end >= 0) {
editText.setSelection(start, end);
}
}
public static void setTextAndMoveCursorToEnd(EditText editText, CharSequence data ){
if ( null != data ) {
editText.setText(data);
editText.setSelection(data.length());
}
}