Método alternativo a TextView.getMaxLines () para Android 4.0.3 (API 15) y inferior

Estoy recibiendo por debajo de los registros de choque mientras se utiliza método getMaxLines() de Texview en Ice Cream Sandwich Android versión 4.0.3,

Así que tengo el problema real es, que mi aplicación está ejecutando sdk inferior que no tiene este método getMaxLines ().

Cómo puede eliminar este bloqueo. No encontré ningún método alternativo

 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) 

El getMaxLines () de TextViewCompat parece a la solución apropiada para esto.

También puede echar un vistazo en el SourceCode de TextViewCompat y copiar las funciones que necesita.

Código:

 int maxLines = TextViewCompat.getMaxLines(yourtextView); 

en lugar de:

 int maxLines = yourtextView.getMaxLines(); 

Recomiendo usar el soporte lib y TextViewCompat. Pero sólo para completar, aquí también es la fuente (actual) de 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; } 

Prueba esto, puede ayudar,

  TextView t1 = (TextView) findViewById(R.id.txt1); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { int no= t1.getMaxLines(); Log.e("No of Lines: ", String.valueOf(no)); } 
  • GetSize () no es compatible con versiones anteriores de Android OS, getWidth () / getHeight () obsoleto
  • Inflar fragmentos con el paquete de compatibilidad android
  • SDK 19 y siguientes no reconoce android.support.v7.widget.CardView, Error al inflar la clase <unknown>
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.