Android 4.0.3(API 15)及以下版本的TextView.getMaxLines()的替代方法

编程入门 行业动态 更新时间:2024-10-27 12:34:13
本文介绍了Android 4.0.3(API 15)及以下版本的TextView.getMaxLines()的替代方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

在Ice Cream Sandwich Android 4.0.3版本上使用Texview的getMaxLines()方法时,我遇到了崩溃日志,

I am getting below crash logs while using getMaxLines() method of Texview on Ice Cream Sandwich Android 4.0.3 version,

所以我真正的问题是,我的应用程序正在运行较低的sdk,而该sdk没有此getMaxLines()方法.

So I got the real issue is, that my application is running lower sdk which does not have this getMaxLines() method.

如何清除此崩溃.我没有找到其他替代方法

How can remove this crash. I didn't find any alternatives method

java.lang.NoSuchMethodError: android.widget.TextView.getMaxLines at com.text.mobile.new.adapters.ServiceListAdapter.onBindViewHolder(ServiceListAdapter.java:232) at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5277) at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5310) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4568) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4461) at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1962) at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:438) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1334) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:563) at android.support.v7.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:171) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2847) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3145) at android.view.View.layout(View.java:11278) at android.view.ViewGroup.layout(ViewGroup.java:4224) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:925) at android.view.View.layout(View.java:11278) at android.view.ViewGroup.layout(ViewGroup.java:4224) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:925) at android.view.View.layout(View.java:11278) at android.view.ViewGroup.layout(ViewGroup.java:4224) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1486) at android.widget.LinearLayout.onLayout(LinearLayout.java:1399) at android.view.View.layout(View.java:11278) at android.view.ViewGroup.layout(ViewGroup.java:4224) at android.widget.FrameLayout.onLayout(FrameLayout.java:431) at android.view.View.layout(View.java:11278) at android.view.ViewGroup.layout(ViewGroup.java:4224) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1486) at android.widget.LinearLayout.onLayout(LinearLayout.java:1399) at android.view.View.layout(View.java:11278) at android.view.ViewGroup.layout(ViewGroup.java:4224) at android.widget.FrameLayout.onLayout(FrameLayout.java:431) at android.view.View.layout(View.java:11278) at android.view.ViewGroup.layout(ViewGroup.java:4224) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1489) at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4424) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) at dalvik.system.NativeStart.main(Native Method)

推荐答案

getMaxLines()(类似于TextViewCompat的解决方案.)

The getMaxLines() of TextViewCompat looks like the appropriate solution for this.

您还可以在 SourceCode ,然后复制所需的功能.

You can also take a look in the SourceCode of TextViewCompat, and copy the functions you need.

代码:

int maxLines = TextViewCompat.getMaxLines(yourtextView);

代替:

int maxLines = yourtextView.getMaxLines();

我强烈建议使用支持库和TextViewCompat. 但是为了完整起见,这也是 TextViewCompatDonut 的getMaxLines:

I highly recommend using the support lib and TextViewCompat. But just for completeness, here is also the (current) source of TextViewCompatDonut 's getMaxLines :

static int getMaxLines(TextView textView) { if (!sMaxModeFieldFetched) { sMaxModeField = retrieveField("mMaxMode"); sMaxModeFieldFetched = true; } if (sMaxModeField != null && retrieveIntFromField(sMaxModeField, textView) == LINES) { // If the max mode is using lines, we can grab the maximum value if (!sMaximumFieldFetched) { sMaximumField = retrieveField("mMaximum"); sMaximumFieldFetched = true; } if (sMaximumField != null) { return retrieveIntFromField(sMaximumField, textView); } } return -1; }

更多推荐

Android 4.0.3(API 15)及以下版本的TextView.getMaxLines()的替代方法

本文发布于:2023-11-27 01:30:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1636016.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:版本   方法   API   Android   getMaxLines

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!