在拖动时选择edittext中的一些文本

时间:2013-12-04 11:41:55

标签: android android-edittext

我想在edittext中选择一些文字,但我不知道该怎么做。

我需要这样的方法:当用户触摸屏幕然后拖动屏幕时,将会选择拖动的文本。(我的英文很差,所以不要介意,谢谢)

textView = (EditText) findViewById(R.id.textvie1);  
InputStream inputStream=getResources().openRawResource(value+0x7f040000);
String string = reader.getString(inputStream);textView.setMovementMethod(new ScrollingMovementMethod());
textView.setText(string);

2 个答案:

答案 0 :(得分:1)

请参阅此Link

它使用onTouchListener从动作事件中获取触摸位置,将光标设置到正确的位置,并告诉使用ACTION_MOVE动作事件选择要拖动的文本。

mText = (EditText) findViewById(R.id.editText1);
  OnTouchListener otl = new OnTouchListener() {
  @Override
  public boolean onTouch(View v, MotionEvent event) {
      switch (event.getAction()) {
      case MotionEvent.ACTION_DOWN:
          Layout layout = ((EditText) v).getLayout();
          float x = event.getX() + mText.getScrollX();
          int offset = layout.getOffsetForHorizontal(0, x);
          if(offset>0)
              if(x>layout.getLineMax(0))
                  mText.setSelection(offset);     // touch was at end of text
              else
                  mText.setSelection(offset - 1);
          break;
          }
      return true;
      }
  };
  mText.setOnTouchListener(otl);

答案 1 :(得分:0)

我认为你要做的是选择editText中的文字吧? 编辑您的布局并将以下行添加到editText

android:selectAllOnFocus="true"

来自official android documentation