Aquí está el método getView de mi DownloadableProjectsFromWebAdapter clase:Android LayoutInflater Edición
@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, por último, los resultados definición:
List<AllProjectListInfo> results
Ahora, he copiado el código de otro lugar que donde yo uso un adaptador personalizado. Sin embargo, ese funciona bien. No entiendo por qué este no.
Cualquier ayuda es apreciada.
Gracias.
Perfecto, funciona como una bala de plata. – Josh