Nis*_*hah 5 android textview android-layout
我有一个带有文本"Hello World!"的TextView.在布局xml中定义
TextView textView = (TextView)findViewById(R.id.textView);
Run Code Online (Sandbox Code Playgroud)
TextView的getText()方法返回Class java.lang.String的对象
//Returns object of String class
Toast.makeText(getApplicationContext(), textView.getText().getClass().getName(), Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
如果在创建AccessibilityNodeInfo之后调用它,则返回android.text.SpannableString的对象
//Creating AccessibilityNodeInfo
AccessibilityNodeInfo info = textView.createAccessibilityNodeInfo();
//Returns object of SpannableString
Toast.makeText(getApplicationContext(), "After creating AccessibilityNodeInfo: " + textView.getText().getClass().getName(), Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
如何创建与getText()方法返回的对象相关的AccessibilityNodeInfo?
注意: 这仅在Android 4.3及更高版本中发生
这是由于添加了select
、cut
、copy
等新功能。它是在 Android 4.3 中引入的,并在此处进行了记录。paste
AccessibilityNodeInfo
选择文本并复制/粘贴
AccessibilityNodeInfo 现在提供允许 AccessibilityService 在节点中选择、剪切、复制和粘贴文本的 API。
要指定要剪切或复制的文本选择,您的辅助服务可以使用新操作 ACTION_SET_SELECTION,并通过 ACTION_ARGUMENT_SELECTION_START_INT 和 ACTION_ARGUMENT_SELECTION_END_INT 传递选择的开始和结束位置。或者,您可以通过使用现有操作 ACTION_NEXT_AT_MOVMENT_GRANULARITY(以前仅用于移动光标位置)操作光标位置并添加参数 ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN 来选择文本。
然后,您可以使用 ACTION_CUT、ACTION_COPY 剪切或复制,然后使用 ACTION_PASTE 粘贴。
注意:这些新 API 也可通过 Android 支持库和 AccessibilityNodeInfoCompat 类用于以前版本的 Android。
要实现该select
功能,styleable
/markup
对象需要附加到底层文本。因此,文本类型从 更改String
为SpannableString
。
这是引入此功能的View.java代码。以下代码将类型更改为SpannableString
.
@Override
public CharSequence getIterableTextForAccessibility() {
if (!(mText instanceof Spannable)) {
setText(mText, BufferType.SPANNABLE);
}
return mText;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
585 次 |
最近记录: |