java - getView() 方法在带有 gridview 的自定义适配器中未调用

标签 java android gridview

当我调试代码时,它正在调用 InviteListAdapter 中的构造函数,但没有调用 getView() 方法。我已经尝试了 stackoverflow 上提供的多种解决方案,但没有一个有效。希望任何人都能找到错误或解决方案。

invitableFriends.size()    

返回大于 0 的值。

InviteListAdapter

public class inviteListAdapter extends ArrayAdapter<JSONObject> {

private final Context context;
private final List<JSONObject> invitableFriends;
private ImageView profilePicView;

public inviteListAdapter(Context context, List<JSONObject> invitableFriends) {
    super(context, R.layout.invite_adapter, invitableFriends);
    this.context = context;
    this.invitableFriends = invitableFriends;
}


@Override
public View getView(int position, View convertView, ViewGroup parent){


    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(context.LAYOUT_INFLATER_SERVICE);

    View listItemView = inflater.inflate(R.layout.invite_adapter, parent, false);

    profilePicView = (ImageView) listItemView.findViewById(R.id.inviteListItemProfilePic);
    TextView nameView = (TextView) listItemView.findViewById(R.id.inviteListItemName);

    JSONObject currentUser = invitableFriends.get(position);

    nameView.setText(currentUser.optString("first_name"));


    return listItemView;
}

 }

first.java

public View onCreateView (
        LayoutInflater inflater,
        ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.activity_first,container, false);

    invitesGridView = (GridView)view.findViewById(R.id.invitesGridView);

            return view;
}


final inviteListAdapter adapter = new inviteListAdapter(this,inviteFriendList);
    invitesGridView.setAdapter(adapter);
    adapter.notifyDataSetChanged();

最佳答案

public View onCreateView (
    LayoutInflater inflater,
    ViewGroup container,
    Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.activity_first,container, false);

invitesGridView = (GridView)view.findViewById(R.id.invitesGridView);
final inviteListAdapter adapter = new inviteListAdapter(this,inviteFriendList);
invitesGridView.setAdapter(adapter);
adapter.notifyDataSetChanged();

        return view;
 }

在onCreateView中调用setAdapter

关于java - getView() 方法在带有 gridview 的自定义适配器中未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31690477/

相关文章:

javascript - jQwidgets - 单击 GridView 按钮单元格但不会触发行选择

java - 如何在android上选择线程池的大小

Java:继承和重写方法问题

java - 如果将 NxM 乘法表按顺序排列,中间的数字是什么?

c# - foreach 循环无法转换但手动转换和 for 循环工作

asp.net - 在 ASP.NET webforms 的 GridView 中构建超链接 - Eval 不工作

java - 是否应该将 FK 设置为另一个表的索引?

android - 保护 REST API 供 Android 客户端使用

android - 使用 SkiaSharp 在 Xamarin 中加载 SVG 文件

android - 在不播放 Pop-Animation 的情况下弹出 fragment backstack