Android 回收视图中的BaseAdapter仅显示一个项目问题
我有RecyclerView,这有一个问题,但在extends BaseAdapter listview中只显示第一个数据元素,在获取唯一的第一项后,适配器不会继续放置数据Android 回收视图中的BaseAdapter仅显示一个项目问题,android,android-listview,baseadapter,Android,Android Listview,Baseadapter,我有RecyclerView,这有一个问题,但在extends BaseAdapter listview中只显示第一个数据元素,在获取唯一的第一项后,适配器不会继续放置数据 public class AdapterCorporationPrivilegeDescriptions extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private List<ModelPrivilegeDescription>
public class AdapterCorporationPrivilegeDescriptions extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<ModelPrivilegeDescription> itemList;
private ListPrivilegeParentListener parentListener;
private Context context;
private AdapterCorporationPrivilegeDescriptionnn adapter;
private boolean visibility;
private int width;
public AdapterCorporationPrivilegeDescriptions(Context context,
int width,
List<ModelPrivilegeDescription> itemList,
ListPrivilegeParentListener parentListener) {
this.itemList = itemList;
this.width = width;
this.parentListener = parentListener;
this.context = context;
}
public void setData(List<ModelPrivilegeDescription> itemList) {
this.itemList = itemList;
notifyDataSetChanged();
}
public void setVisibilityListView(boolean visibility) {
this.visibility = visibility;
}
@Override
public AdapterCorporationPrivilegeDescriptions.AdapterCorporationPrivilegeListHolder
onCreateViewHolder(ViewGroup parent, int viewType) {
return new AdapterCorporationPrivilegeDescriptions.AdapterCorporationPrivilegeListHolder(
LayoutInflater.from(parent.getContext()).inflate(
R.layout.item_corporation_privilege_descriptions, parent, false));
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
((AdapterCorporationPrivilegeDescriptions.AdapterCorporationPrivilegeListHolder) holder).setData(itemList.get(position));
}
@Override
public int getItemCount() {
return itemList == null ? 0 : itemList.size();
}
private class AdapterCorporationPrivilegeListHolder extends RecyclerView.ViewHolder {
private HTextView text;
private HImageView icon;
private HSwipeableListView listView;
private AdapterCorporationPrivilegeListHolder(View itemView) {
super(itemView);
text = itemView.findViewById(R.id.itemCorporationPrivilegeDescriptionsText);
icon = itemView.findViewById(R.id.itemCorporationPrivilegeDescriptionsIcon);
listView = itemView.findViewById(R.id.itemCorporationPrivilegeDescriptionsListView);
}
private SwipeMenuItem getDeleteItem() {
SwipeMenuItem swipeMenuItem = new SwipeMenuItem(context);
swipeMenuItem.setWidth(width);
swipeMenuItem.setBackground(R.color.red_delete);
swipeMenuItem.setIcon(R.drawable.ic_delete);
swipeMenuItem.setTitle(App.getStrWithId(R.string.payment_transfer_delete_button));
swipeMenuItem.setTitleColor(Color.WHITE);
swipeMenuItem.setTitleSize((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 16, context.getResources().getDisplayMetrics()));
return swipeMenuItem;
}
HSwipeableListView.OnMenuItemClickListener onMenuItemClickListener = new HSwipeableListView.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(final int position, SwipeMenu menu, int index) {
if (index == 0) {
App.getInstance().getBusInstance().post(new CorporationPrivilegeDescriptionEvent(position));
}
return false;
}
};
public void setData(final ModelPrivilegeDescription data) {
SwipeMenuCreator creator = new SwipeMenuCreator() {
@Override
public void create(SwipeMenu menu) {
menu.addMenuItem(getDeleteItem());
}
};
listView.setDividerHeight(0);
listView.setMenuCreator(creator);
listView.setOnMenuItemClickListener(onMenuItemClickListener);
listView.setSwipeEnabled(!App.getInstance().isTalkBackEnabled());
//listView.setVisibility(visibility ? View.VISIBLE : View.GONE);
text.setText(data.transactionName);
if (data.innerList != null && !data.innerList.isEmpty()) {
AdapterCorporationPrivilegeDescriptionnn adapter = new AdapterCorporationPrivilegeDescriptionnn(context, data.innerList, childListener);
adapter.notifyDataSetChanged();
listView.setAdapter(adapter);
adapter.notifyDataSetChanged();
} else {
listView.setVisibility(View.GONE);
icon.setVisibility(View.INVISIBLE);
}
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float positionClosed = 0, positionOpened = 180;
if (listView.getVisibility() == View.VISIBLE) {
parentListener.onItemSelected(data);
listView.setVisibility(View.GONE);
icon.setRotation(positionClosed);
} else {
listView.setVisibility(View.VISIBLE);
icon.setRotation(positionOpened);
}
}
});
}
private final AdapterCorporationPrivilegeDescriptionnn.CorporationPrivilegeDescriptionListener childListener = new AdapterCorporationPrivilegeDescriptionnn.CorporationPrivilegeDescriptionListener() {
@Override
public void onLimitButtonClick(ModelPrivilegeDescriptionAccount item) {
int a = 5;
}
@Override
public void onDetailButtonClick(ModelPrivilegeDescriptionAccount item) {
int a = 5;
}
};
}
}
公共类AdapterCorporationPrivilegeDescriptions扩展了RecyclerView.Adapter{
私人清单项目清单;
private ListPrivilegeParentListener parentListener;
私人语境;
私有适配器公司私有描述NN适配器;
私有布尔可见性;
私有整数宽度;
公共AdapterCorporationPrivilegeDescriptions(上下文,
整数宽度,
列表项列表,
ListPrivilegeParentListener(parentListener){
this.itemList=itemList;
这个。宽度=宽度;
this.parentListener=parentListener;
this.context=上下文;
}
公共void setData(列表项列表){
this.itemList=itemList;
notifyDataSetChanged();
}
public void setVisibilityListView(布尔可见性){
这个.可见性=可见性;
}
@凌驾
公共适配器公司特权说明。适配器公司特权持有人
onCreateViewHolder(视图组父级,int-viewType){
返回新的AdapterCorporationPrivilegeDescriptions.AdapterCorporationPrivilegeListHolder(
LayoutInflater.from(parent.getContext()).flate(
R.layout.item_corporation_privilege_description,parent,false));
}
@凌驾
BindViewHolder上的公共无效(RecyclerView.ViewHolder,int位置){
((AdapterCorporationPrivilegeDescriptions.AdapterCorporationPrivilegeListHolder)holder)设置数据(itemList.get(position));
}
@凌驾
public int getItemCount(){
return itemList==null?0:itemList.size();
}
私有类适配器公司PrivilegelistHolder扩展了RecyclerView.ViewHolder{
私有HTextView文本;
私人HImageView图标;
私有HSwipeableListView-listView;
private Adapter公司PrivilegileListHolder(查看项目视图){
超级(项目视图);
text=itemView.findViewById(R.id.ItemCorporationPrivilegeDescriptionText);
icon=itemView.findViewById(R.id.ItemCorporationPrivilegeDescriptionIcon);
listView=itemView.findViewById(R.id.ItemCorporationPrivilegeDescriptionListView);
}
私有SwipeMenuItem getDeleteItem(){
SwipeMenuItem SwipeMenuItem=新的SwipeMenuItem(上下文);
swipeMenuItem.setWidth(宽度);
swipeMenuItem.setBackground(R.color.red_删除);
swipeMenuItem.setIcon(R.drawable.ic_delete);
swipmenuitem.setTitle(App.getStrWithId(R.string.payment\u transfer\u delete\u按钮));
swipeMenuItem.setTitleColor(颜色.白色);
swipeMenuItem.setTitleSize((int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,16,context.getResources().getDisplayMetrics());
返回swipeMenuItem;
}
hsWipeTableListView.OnMenuItemClickListener OnMenuItemClickListener=新建hsWipeTableListView.OnMenuItemClickListener(){
@凌驾
公共布尔onMenuItemClick(最终整数位置、开关菜单、整数索引){
如果(索引==0){
App.getInstance().getBusinInstance().post(新公司特权描述事件(职位));
}
返回false;
}
};
public void setData(最终型号privilegeDescription数据){
SwipeMenuCreator=新SwipeMenuCreator(){
@凌驾
创建公共空白(SwipMenu菜单){
addMenuItem(getDeleteItem());
}
};
setDividerHeight(0);
setMenuCreator(创建者);
setOnMenuItemClickListener(onMenuItemClickListener);
listView.setSwipeEnabled(!App.getInstance().isTalkBackEnabled());
//listView.setVisibility(可见性?View.VISIBLE:View.GONE);
text.setText(data.transactionName);
if(data.innerList!=null&&!data.innerList.isEmpty()){
AdapterCorporationPrivilegeScriptionNN adapter=新AdapterCorporationPrivilegeScriptionNN(上下文,data.innerList,childListener);
adapter.notifyDataSetChanged();
setAdapter(适配器);
adapter.notifyDataSetChanged();
}否则{
setVisibility(View.GONE);
图标.设置可见性(视图.不可见);
}
itemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
浮动位置关闭=0,位置打开=180;
if(listView.getVisibility()==View.VISIBLE){
parentListener.onItemSelected(数据);
setVisibility(View.GONE);
图标。设置旋转(位置关闭);
}否则{
setVisibility(View.VISIBLE);
图标。设置旋转(位置打开);
}
}
});
}
private final AdapterCorporationPrivilegeDescriptionnn.CorporationPrivilegeDescriptionListener childListener=新AdapterCorporationPrivilegeDescriptionnn.CorporationPrivilegeDescriptionListener(){
@凌驾
public void onLimitButtonClick(ModelPrivilegeDescriptionAccount项){
INTA=5;
}
@凌驾
公共作废OnDetailButton单击(ModelPrivilegeDescriptionAccount项){
INTA=5;
public class AdapterCorporationPrivilegeDescriptionnn extends BaseAdapter {
private int RESOURCE_ID = R.layout.item_corporation_privilege_description;
private LayoutInflater inflater;
private List<ModelPrivilegeDescriptionAccount> list;
private CorporationPrivilegeDescriptionListener listener;
public AdapterCorporationPrivilegeDescriptionnn(Context context,
List<ModelPrivilegeDescriptionAccount> items,
CorporationPrivilegeDescriptionListener listener) {
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
list = items;
this.listener = listener;
}
@Override
public int getCount() {
return list.size();
}
@Override
public ModelPrivilegeDescriptionAccount getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = inflater.inflate(RESOURCE_ID, null);
HTextView accountNumber = convertView.findViewById(R.id.itemCorporationPrivilegeDescriptionAccountNumber);
HTextView changeLimitButton = convertView.findViewById(R.id.itemCorporationPrivilegeDescriptionChangeLimitButton);
LinearLayout layout = convertView.findViewById(R.id.itemCorporationAuthorityDescriptionLayout);
final ModelPrivilegeDescriptionAccount item = getItem(position);
accountNumber.setText(item.accountNumber);
changeLimitButton.setVisibility(item.isChangeable ? View.VISIBLE : View.GONE);
changeLimitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listener.onLimitButtonClick(item);
}
});
accountNumber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listener.onDetailButtonClick(item);
}
});
return convertView;
}
public interface CorporationPrivilegeDescriptionListener {
void onLimitButtonClick(ModelPrivilegeDescriptionAccount item);
void onDetailButtonClick(ModelPrivilegeDescriptionAccount item);
}
}