如何在EditText中单击选择文本?

时间:2013-02-25 10:27:25

标签: android android-edittext

enter image description here

以下源代码无效

    public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_book_page);

             book_page = (EditText) findViewById(R.id.activity_book_page_text);
             book_page.setText("Google is your friend.", TextView.BufferType.EDITABLE);

             book_page.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        book_page.setSelection( 9, 15);
                         //book_page.requestFocus();


                    }
               });

             book_page.setOnFocusChangeListener(new OnFocusChangeListener(){
                    @Override
                    public void onFocusChange(View v, boolean hasFocus){
                        if (hasFocus){
                            book_page.setSelection( 9, 15);
                        }
                    }
                });

 <EditText
        android:id="@+id/activity_book_page_text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#00000000"
        android:ems="10"
        android:inputType="textMultiLine"
        android:selectAllOnFocus="true" >

        <requestFocus />
    </EditText>

3 个答案:

答案 0 :(得分:3)

在.java文件中使用这段代码:

editText.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        editText.setSelection(0, editText.getText().length() - 1);
    }
}

答案 1 :(得分:1)

使用xml:

  android:selectAllOnFocus="true"

代码(option1):

   yourEditText.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        //((EditText)v).selectAll();
        ((EditText)v).setSelection(startValue, stopValue);
    }
   });

也尝试这样:

致电EditText.setSelectAllOnFocus(boolean selectAllOnFocus)选择焦点上的所有文字。

为您的EditText和onClick调用edittext.selectAll();

设置一个点击监听器

答案 2 :(得分:1)

    editText.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            editText.performLongClick();
        }
    });

EditText的默认长按行为是选择已点按的字词,然后拖动选择标记,因此只需在performLongClick()中调用onClick()