我可以从自定义适配器的getView填充列表视图吗?

时间:2013-05-03 17:37:51

标签: java android android-arrayadapter

我有一个列表视图,其中包含具有列表视图的项目。我正在尝试从填充“父”列表视图的自定义适配器的getView内部填充项目列表视图:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;
    System.out.println("session adapter: here1");
    if (v == null) {
        LayoutInflater inflater = (LayoutInflater) act.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        v = inflater.inflate(R.layout.single_session, null);


    }

    SessionObject i = sessions.get(position);

     if (i != null) {
         tvTrackName = (TextView) v.findViewById(R.id.textViewTrackName);
         tvTrackName.setText(i.trackName);
         tvSessionName = (TextView) v.findViewById(R.id.textViewSessionName);
         tvSessionName.setText(i.sessionName);

         tvSessionModerator = (TextView) v.findViewById(R.id.textViewModeratorName);
         tvSessionModerator.setText("Moderator: "+i.sessionModerator);

         listAbstracts = i.abstractList;

         lvAbstracts = (ListView) v.findViewById(R.id.listViewAbstracts);

         AbstractObjectAdapter adapter = new AbstractObjectAdapter(act, R.id.listViewAbstracts, listAbstracts);
         lvAbstracts.setAdapter(adapter);  
      }
     return v;  

}

“内部”适配器似乎只调用其getView函数一次,无论其列表中的项目数是多少。如果有2个项目,则只有第一个项目被放入列表视图中。这是错误的方法吗?我错过了什么吗?

感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

动态创建项目视图,将文本视图添加到线性布局。你只需要小心处理convertView,最初总是最容易进行转换,但你会受到一点性能影响。

稍后优化。