gpt4 book ai didi

Android选择并突出显示edittext中的文本

转载 作者:行者123 更新时间:2023-11-30 02:43:52 28 4
gpt4 key购买 nike

我想做一个应用程序,它有一个 EditText 或 TextView,可以在单击时选择并突出显示所选文本。我怎样才能做到这一点?我尝试覆盖我的 EditText 上的 onClick 方法,但似乎不起作用。

这是我到目前为止尝试过的:

etx.setOnLongClickListener(new OnLongClickListener() {

@Override
public boolean onLongClick(View v) {

int startSelection = etx.getSelectionStart();
int endSelection = etx.getSelectionEnd();

//String selectedText = etx.getText().toString().substring(startSelection, endSelection);

Spannable spannable=new SpannableString(etx.getText().toString());
spannable.setSpan(new ForegroundColorSpan(Color.BLUE), startSelection, endSelection, 0);
etx.setText(spannable);

return true;
}

});



<EditText
android:id="@+id/tvOrdinanceTitle"
android:layout_width="wrap_content"
android:textColor="@android:color/black"
android:cursorVisible="false"
android:layout_height="wrap_content"
android:background="#00000000" >
</EditText>

但它不起作用。任何解决方法?我很乐意感谢你的帮助。谢谢。

最佳答案

您可以在 .xml 中包含:

android:selectAllOnFocus="true"

具体来说:

android:textIsSelectable=Indicates that the content of a non-editable text can be selected. 
android:selectAllOnFocus=If the text is selectable, select it all when the view takes. focus.

或以编程方式:

etx.setOnFocusChangeListener(new OnFocusChangeListener()
{
@Override
public void onFocusChange(View v, boolean hasFocus)
{
if(hasFocus)
{
etx.setSelection(editText.getText().toString().length());
}
}
});

并确定要使用的颜色。假设这是您的 editText:

    <EditText 
android:id="@+id/tvOrdinanceTitle"
android:layout_width="wrap_content"
android:cursorVisible="false"
android:layout_height="wrap_content"
android:background="@color/etxt_color" >
</EditText>

然后创建res/color/etxt_color.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#000000" /> <!-- pressed -->
<item android:state_focused="true"
android:color="#000000" /> <!-- focused -->
<item android:color="#FFFFFF" /> <!-- default -->
</selector>

关于Android选择并突出显示edittext中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25357295/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com