我处于以下情况:
- 我有来自 Android Studio 的导航抽屉的默认实现,带有一个 navigationDrawerFragment。
- 我有一个带有自定义适配器的 navigationDrawerFragment 的自定义 listView。
- 因为我的 listView 中有不同类型的项目,所以我使用经典的持有人模式。
我的问题如下:我想将数据从我的容器活动(facebook 个人资料图片和名称)发送到自定义适配器,以使用这些数据设置持有者。
我怎样才能做到这一点 ?请参阅以下代码:
if (view == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
drawerHolder = new DrawerItemHolder();
view = inflater.inflate(layoutResID, parent, false);
drawerHolder.ItemName = (TextView) view
.findViewById(R.id.drawer_profileName);
drawerHolder.icon = (ProfilePictureView) view.findViewById(R.id.drawer_profileIcon);
drawerHolder.title = (TextView) view.findViewById(R.id.drawer_titleName);
drawerHolder.item = (TextView) view.findViewById(R.id.drawer_itemName);
drawerHolder.logOut = (TextView) view.findViewById(R.id.drawer_logOut);
drawerHolder.logOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onLogoutButtonClicked();
}
});
drawerHolder.titleLayout = (LinearLayout) view.findViewById(R.id.titleLayout);
drawerHolder.itemLayout = (LinearLayout) view.findViewById(R.id.itemLayout);
drawerHolder.profileLayout = (LinearLayout) view.findViewById(R.id.profileLayout);
view.setTag(drawerHolder);
} else {
drawerHolder = (DrawerItemHolder) view.getTag();
}
DrawerItem dItem = (DrawerItem) this.drawerItemList.get(position);
if (dItem.isTitle()){
drawerHolder.titleLayout.setVisibility(LinearLayout.VISIBLE);
drawerHolder.itemLayout.setVisibility(LinearLayout.INVISIBLE);
drawerHolder.profileLayout.setVisibility(LinearLayout.INVISIBLE);
drawerHolder.title.setText(dItem.getTitle());
} else if (dItem.getImgResID() == 0) {
drawerHolder.titleLayout.setVisibility(LinearLayout.INVISIBLE);
drawerHolder.itemLayout.setVisibility(LinearLayout.VISIBLE);
drawerHolder.profileLayout.setVisibility(LinearLayout.INVISIBLE);
drawerHolder.item.setText(dItem.getItem());
} else {
drawerHolder.titleLayout.setVisibility(LinearLayout.INVISIBLE);
drawerHolder.itemLayout.setVisibility(LinearLayout.INVISIBLE);
drawerHolder.profileLayout.setVisibility(LinearLayout.VISIBLE);
}
return view;
}
我需要在 else 中将传递给自定义适配器的数据设置为 facebookProfilPicture。