Android 安卓布局更扁平的问题

Android 安卓布局更扁平的问题,android,layout-inflater,Android,Layout Inflater,以下是我的类DownloadableProjectsFromWebAdapter的getView方法: @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; DownloadableProjectsFromWebHolder holder = null; if(row == null) {

以下是我的类DownloadableProjectsFromWebAdapter的getView方法:

@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;
}
导致问题的线路:

35:    LayoutInflater inflater = ((Activity)context).getLayoutInflater();
36:    row = inflater.inflate(layoutResourceId, parent, false);
以下是来自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)
下面是调用适配器的过程:

DownloadableProjectsFromWebAdapter adapter = 
    new DownloadableProjectsFromWebAdapter(
        getBaseContext(), 
        R.layout.all_projects_listview_item, 
        results);
最后,结果定义:

List<AllProjectListInfo> results
列出结果
现在,我从另一个使用自定义适配器的地方复制了这段代码。然而,这一个工作得很好。我不明白为什么这个没有

感谢您的帮助


谢谢。

您在适配器中设置了错误的上下文:

DownloadableProjectsFromWebAdapter adapter = 
    new DownloadableProjectsFromWebAdapter(
        getBaseContext(), 
        R.layout.all_projects_listview_item, 
        results);
试试这个:

DownloadableProjectsFromWebAdapter adapter = 
new DownloadableProjectsFromWebAdapter(
    MyActivityClass.this, 
    R.layout.all_projects_listview_item, 
    results);
与此相反(这是错误的):

这样做:

LayoutInflater inflater = LayoutInflater.from(context);