【问题标题】:Can I change an item inside customArray我可以更改 customArray 中的项目吗
【发布时间】:2017-12-05 18:00:24
【问题描述】:

您好,我想修改自定义 ArrayList 中的一些数据

我的自定义数组

public class Item_GetMembers {

    String userid,username,gender,admin,ban,type;

    public Item_GetMembers(String userid, String username, String gender, String admin, String ban, String type) {
        this.userid = userid;
        this.username = username;
        this.gender = gender;
        this.admin = admin;
        this.ban = ban;
        this.type = type;
    }
}

我想将禁令从 0 修改为 1 职位 3 我可以从同一页面进行吗?

我的适配器

 public class Adapter_GetMembers extends RecyclerView.Adapter<Adapter_GetMembers.AdapterHolder>{

        ArrayList<Item_GetMembers> CategoriesList;
        Context context;

        public Adapter_GetMembers(Context context , ArrayList<Item_GetMembers> categories) {
            this.context = context;
            CategoriesList = categories;
        }

        @Override
        public AdapterHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_getmembers,parent,false);
            AdapterHolder adapterHolder = new AdapterHolder(v);

            return adapterHolder;
        }

        @Override
        public void onBindViewHolder(final AdapterHolder holder, final int position) {
            final Item_GetMembers item_getMembers = CategoriesList.get(position);
item_getMembers.ban.get(3,1); //but wrong why??

        }

        @Override
        public int getItemCount() {
            return CategoriesList.size();
        }

        class AdapterHolder extends RecyclerView.ViewHolder
        {

            public AdapterHolder(View itemView) {
                super(itemView);

            }
        }

}

我可以在其中编辑数据吗?我尝试了很多修改它,但它没有工作 , 先谢谢了

【问题讨论】:

  • 您的意思是要将模型位置从 0 移动到 1,对吧?
  • 当然是的:D
  • 我想将数据位置 3 从 0 更改为 1
  • 例如:ArrayList names = new ArrayList();名称.add("A");名称.add("B");名称.add("C");名称.add("D");例如,我想将名称 A 更改为 Haley,你了解我吗?
  • 检查我更新的代码

标签: android arrays android-studio


【解决方案1】:

试试这个

@Override
public void onBindViewHolder(final AdapterHolder holder, final int position) {
    final Item_GetMembers item_getMembers = CategoriesList.get(position);
    //It means if your position is zero then zero position item will move at third position
    if(position == 0)
       moveItem(3, item_getMembers);

}

private void moveItem(int toItemPos, Item_GetMembers item)
{
   for(int i = 0; i < CategoriesList.size(); i++){
        if(toItemPos == i){
            CategoriesList.add(i, item)
            break;              
        }
   }
   notifyDataSetChanged();
}

【讨论】:

  • 没有人,例如我在数组中有 2 个名称位置 0 名称 = "A" 位置 1 名称 = "B" 我想将位置 0 从 A 更改为 Haley
  • 你懂我吗?
  • 但是在哪里写新名字??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多