Android:如何更新“回收者”视图列表中的单行

比尼尔·苏伦德兰(Binil Surendran)

我有一个应用程序调用API,该API会创建500行时生成它。在我的应用程序中,行内容可以在详细信息页面中更新。因此,在更新之后,无需再次调用API就有可能更新Recycler View中的行

活动

AsyncHttpClient client = new AsyncHttpClient();
client.get("URL", new AsyncHttpResponseHandler() {
@Override
 public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
try {                        
    String jsonStr = new String(responseBody, "UTF-8");
    if (jsonStr != null) {
    try {  
        JSONArray jsonArray = new JSONArray(jsonStr);
        JSONObject cStatus = jsonArray.getJSONObject(jsonArray.length()-1);
        for (int i = 0; i < jsonArray.length(); i++) 
        {
        JSONObject c = jsonArray.getJSONObject(i);
        String firstName = c.getString("firstName");
        String subDistributerId = c.getString("subDistributerId");
        SubdistributorItem item = new SubdistributorItem();
        item.setSubDistributorName(firstName);
        item.setSubDistributorId(subDistributerId);
        ubdistributorItemList.add(item);
        }
       } catch (JSONException e) {
         e.printStackTrace();
       }
     } 
     Collections.sort(subdistributorItemList, new Comparator<SubdistributorItem>() {
     public int compare(SubdistributorItem o1, SubdistributorItem o2) {
     return o1.getSubDistributorName().compareToIgnoreCase(o2.getSubDistributorName());
    }
   });
    adapter = new SubdistributorRecyclerAdapter(getActivity(),subdistributorItemList);
     mRecyclerView.setAdapter(adapter);
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
   }
  }               
});

转接器类别

public class SubdistributorRecyclerAdapter extends RecyclerView.Adapter<SubdistributorListRowHolder>  {
private List<SubdistributorItem> subdistributorItems;
private Context mContext;
private ArrayList<SubdistributorItem> arraylist;

public SubdistributorRecyclerAdapter(Context context, List<SubdistributorItem> subdistributorItems) {
    this.subdistributorItems = subdistributorItems;
    this.mContext = context;
    this.arraylist = new ArrayList<SubdistributorItem>();
    this.arraylist.addAll(subdistributorItems);
}

@Override
public SubdistributorListRowHolder onCreateViewHolder(ViewGroup viewGroup,  int i) {
    View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.subdistributor_list_item, null);
    SubdistributorListRowHolder mh = new SubdistributorListRowHolder(v);

    layout_subdistributor.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(final View v) {
      Intent i = new Intent(mContext, SubdistributorDetail.class);
                    Log.e("Tag shop ", "ShopKeeper Detail called");
                    i.putExtra("subDistributorStatus", txt_RechargeSubdistributor.getText().toString());
                    i.putExtra("subDistributorId", txt_subDistributorId.getText().toString());
                    mContext.startActivity(i);

        }
    });
    return mh;
}
@Override
public void onBindViewHolder(SubdistributorListRowHolder subDistributorListRowHolder, int i) {

    SubdistributorItem subdistributorItem = subdistributorItems.get(i);
    Log.e("Tag ", "adapter "+ subdistributorItem.getSubDistributorName());

}
@Override
public int getItemCount() {
    return (null != subdistributorItems ? subdistributorItems.size() : 0);
}
}

因此,任何人都可以帮助我更新列表中的一行,而无需再次调用该API。

安德烈·扎伊特切夫

更新列表中的项目subdistributorItems然后致电adapter.notifyItemChanged(int position)您可以使用以下方法在ClickListener中获得排名:

layout_subdistributor.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(final View v) {
        if (mh.getAdapterPosition() != RecyclerView.NO_POSITION) {
          int position = mh.getAdapterPosition();
          // edit your object by calling subdistributorItems.get(position)
        }
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

回收者视图列表适配器错误地更新了UI

在更新回收者视图列表的数据集时,其滚动跳回到顶部(重复)

在 Kivy 中选择后更新回收视图列表

动态循环回收视图列表

Android Repository模式-如何从视图模型更新嵌套的回收者视图项

单击底部工作表片段中的回收者视图项目时如何更新LinearLayout?

如何在列表视图列表项中对齐值?

如何为多个视图持有人创建一个与所选视图持有人匹配的视图持有人视图适配器,不在同一回收者视图列表中

如何使用回收者视图创建浮动操作按钮菜单行为?

如何按降序对android中的回收者视图项目进行排序

片段中的回收者视图

如何在不同表的列表视图列中显示

如何在列表视图列中显示多个列?

如何在视图列表中显示<string>

如何在Android Studio上显示多个回收者视图?

如何在android中使用片段显示回收者视图

如何在Compose Jetpack中创建回收者视图?

如何突出显示“回收者视图”中的选定项目?

如何访问回收者视图的子视图?

回收者视图不显示列表

回收者视图中的空列表项

更新片段上的回收者视图

如何将数据添加到列表中,以便我可以为回收者视图呈现它

如何在Android中为列表视图的单行管理多个布局?

如何动态地向回收者列表视图项添加背景视图?

Android如何更新ListView中的单行?

单行data.table中的地图列表

回收者视图仅在再次启动活动后才显示更新的列表

如何从列表视图列中选择值