android添加标签属性,android - 如何使用Android TagHandler阅读自定义html标记属性 - 堆栈内存溢出...

我正在扩展Android TagHandler类来处理TextField中的自定义html标记。 到目前为止,我能够拦截标签并为这些标签提供“onClick()”的自定义功能。 但是 - 我无法捕获这些自定义标记的任何属性,例如:

"This is an example of a custom mark-up tag embedded in text that a text field would handle CUSTOM and that I need to capture."

我能够捕获自定义标记的出现,但不能捕获具有以下内容的属性:

public class SpecialTagHandler implements TagHandler

{

@Override

public void handleTag(

boolean opening,

String tag,

Editable output,

XMLReader xmlReader)

{

if(tag.equalsIgnoreCase("custom")) {

// handle the custom tag

if(opening) {

Log.e(TAG, "found custom tag OPENING");

try {

Field elementField = xmlReader.getClass().getDeclaredField("theNewElement");

elementField.setAccessible(true);

try {

Object element = elementField.get(xmlReader);

Field attsField = element.getClass().getDeclaredField("theAtts");

attsField.setAccessible(true);

Object atts = attsField.get(element);

Field dataField = atts.getClass().getDeclaredField("data");

dataField.setAccessible(true);

String[] data = (String[])dataField.get(atts);

Field lengthField = atts.getClass().getDeclaredField("length");

lengthField.setAccessible(true);

int length = (Integer)lengthField.get(atts);

String mIdAttribute = null;

String mUrlAttribute = null;

for(int i = 0; i < length; i++) {

if("id".equals(data[i*5 + 1])) {

mIdAttribute = data[i*5 + 4];

} else if("uri".equals(data[i*5 + 1])) {

mUrlAttribute = data[i*5 + 4];

}

}

Log.e(TAG, "id: " + mIdAttribute + " url: " + mUrlAttribute);

} catch (IllegalArgumentException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

} catch (NoSuchFieldException e1) {

e1.printStackTrace();

}

}

}

}

}

关于如何读取id和uri属性的任何建议? 讨论了使用传递给此函数的XMLReader。 提前致谢!

--------有一个答案! ---------

好吧 - 还有一些挖掘和瞧! 是的 - 您可以在标记的html文本中访问标记中的自定义属性。 我必须使用反射来包含来自@rekire的黑暗魔法,以访问xmlReader属性。 (这些元素都不是“裸眼”的“可见”)。 链接在这里: 链接 。 无需使用重复的Java类或实际包含id的funky标签名称! 再次感谢 - @rekire添加了链接帖子中的代码,这些代码可以解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值