Problema de LayoutInflater de Android

Aquí está el método getView de mi clase DownloadableProjectsFromWebAdapter:

@Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; DownloadableProjectsFromWebHolder holder = null; if(row == null) { LayoutInflater inflater = ((Activity)context).getLayoutInflater(); row = inflater.inflate(layoutResourceId, parent, false); holder = new DownloadableProjectsFromWebHolder(); holder.txtPid = (TextView)row.findViewById(R.id.tvAllProjectsPid); holder.txtName = (TextView)row.findViewById(R.id.tvAllProjectsName); holder.txtShareable = (TextView)row.findViewById(R.id.tvAllProjectsShareable); row.setTag(holder); } else { holder = (DownloadableProjectsFromWebHolder)row.getTag(); } String share_text; AllProjectListInfo li = data.get(position); holder.txtPid.setText("ID: " + Integer.toString(li.getId())); holder.txtName.setText(li.getName()); if (li.getShareable()){ share_text = "Public Project"; } else { share_text = "Private Project"; } holder.txtShareable.setText(share_text); return row; } 

Las líneas que están causando el problema:

 35: LayoutInflater inflater = ((Activity)context).getLayoutInflater(); 36: row = inflater.inflate(layoutResourceId, parent, false); 

Aquí la información de LogCat:

 FATAL EXCEPTION: main java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity at com.ericbrian.tnc.ConProForAndroid.DownloadableProjectsFromWebAdapter.getView(DownloadableProjectsFromWebAdapter.java:36) at android.widget.AbsListView.obtainView(AbsListView.java:2033) at android.widget.ListView.makeAndAddView(ListView.java:1772) at android.widget.ListView.fillDown(ListView.java:672) at android.widget.ListView.fillFromTop(ListView.java:732) at android.widget.ListView.layoutChildren(ListView.java:1625) at android.widget.AbsListView.onLayout(AbsListView.java:1863) 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) 

Aquí la llamada del adaptador:

 DownloadableProjectsFromWebAdapter adapter = new DownloadableProjectsFromWebAdapter( getBaseContext(), R.layout.all_projects_listview_item, results); 

Y finalmente, la definición de los resultados:

 List<AllProjectListInfo> results 

Ahora, copié este código de otro lugar que donde utilizo un adaptador de encargo. Sin embargo, que uno funciona muy bien. No entiendo por qué este no lo hace.

Cualquier ayuda es apreciada.

Gracias.

2 Solutions collect form web for “Problema de LayoutInflater de Android”

En lugar de esto (que es en su mayoría equivocado) :

 LayoutInflater inflater = ((Activity)context).getLayoutInflater(); 

hacer esto:

 LayoutInflater inflater = LayoutInflater.from(context); 

Está configurando el contexto incorrecto en el adaptador:

Prueba esto:

 DownloadableProjectsFromWebAdapter adapter = new DownloadableProjectsFromWebAdapter( MyActivityClass.this, R.layout.all_projects_listview_item, results); 
  • gancho LayoutInflater y cambiar los valores al inflar las vistas
  • Cómo agregar una vista inflada a un diseño lineal
  • ¿Cuál es la diferencia entre los infladores
  • Haga clic en TextView dentro del diseño lineal inflado
  • Infla la vista sin el margen
  • Inflater en Android Fragmentos
  • Línea del archivo XML binario ocasional #XX: Error al inflar la clase <unknown>
  • Estoy recibiendo error de inflado de diseño al usar android: textSize = "? Android: attr / textAppearanceLarge" en mi xml
  • Cómo guardar un diseño hinchado en android después de los cambios de configuración?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.