我已更新到SDK版本24,现在不推荐使用public static void main(String[] args) {
final List<String> eventNames= new ArrayList<String>();
final List<Calendar> eventTimes= new ArrayList<Calendar>();
ArrayList<Integer> indices = range(eventNames.size());
Collections.sort(indices, new Comparator<Integer>() {
@Override
public int compare(Integer i, Integer j) {
return eventTimes.get(i).compareTo(eventTimes.get(j));
}
});
//Now to get the index i = 5 after sort you must do this
eventNames.get(indices.get(5));
}
private static ArrayList<Integer> range(int size) {
return range(0, size);
}
public static ArrayList<Integer> range(int start, int end) {
ArrayList<Integer> list = Lists.newArrayList();
for (int i = start; i < end; i++) {
list.add(i);
}
return list;
}
。并且Html类有一个带有额外参数名为flag的新方法,但它的最小API是24。
对于较低的API版本,此功能是否有替代方案?我不想为此目的使用Html.fromHtml()
。
答案 0 :(得分:73)
或者:
在所有API级别使用Html.fromHtml(String)
,或
在API Level 23及更早版本的设备上使用Html.fromHtml(String)
,在API Level 24+设备上使用Html.fromHtml(String, int)
,使用Build.VERSION.SDK_INT
查找您所在设备的API级别正在
在这种情况下,“不赞成”是一个提示去寻找双参数方法,但单参数方法仍然有效,并且(很可能)将在相当长的时间内这样做。
答案 1 :(得分:52)
只需使用
if (Build.VERSION.SDK_INT >= 24) {
Html.fromHtml(String, int) // for 24 api and more
} else {
Html.fromHtml(String) // or for older api
}
使用Html.fromHtml(String,int)获取24 api文档:
https://developer.android.com/reference/android/text/Html.html
答案 2 :(得分:12)
实际上还有另一种带有flag参数的方法
ForceExecutionResult
只需使用带有flag参数的fromHtml函数。标志参数是
/** @deprecated */
@Deprecated
public static Spanned fromHtml(String source) {
throw new RuntimeException("Stub!");
}
public static Spanned fromHtml(String source, int flags) {
throw new RuntimeException("Stub!");
}