Когда я отлаживаю код, он вызывает конструкторы в InviteListAdapter, но не вызывает метод getView(). Я попытался использовать несколько решений в stackoverflow, но ни один из них не работает. Надеюсь, что любой может найти ошибку или решение для этого.Метод getView() не вызывается в пользовательском адаптере с gridview
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();
вы уверены Вызывается 'setAdapter'? когда вы называете этот метод? –
Вы также указали «parent» как root и 'false', означает, что вы предоставляете родителя и говорите ему, чтобы он не принимал его как родителя? используйте '.inflate (R.layout.invite_adapter, null);' (нет корня, поэтому он будет использовать xml root как root) И, конечно, установите свой адаптер внутри 'onCreateView', так как именно там вы создаете представление. – Darpan