大佬教程收集整理的这篇文章主要介绍了Android刷新适配器工作后再次旋转设备,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Rhat有一个简单的提示,再次旋转设备后,我的适配器可以刷新所有添加的数据,哪个适配器不刷新它们.
public class ActivityRegister extends BaseActivities{ private List<Robotviewmodel> model = new ArrayList<>(); ... @Override public void onCreate(@Nullable Bundle savedInstanceStatE) { super.onCreate(savedInstanceStatE); ... } @Override protected void onSaveInstanceState(Bundle outStatE) { outState.putParcelable("model",Parcels.wrap(model)); super.onSaveInstanceState(outStatE); } @Override protected void onRestoreInstanceState(Bundle outStatE) { model = ParcelS.Unwrap(outState.getParcelable("model")); adapter.setData(model); adapter.notifyItemInserted(model.size() - 1); binding.registerRobot.scrollToPosition(adapter.getItemCount() - 1); }@H_404_5@@Override public void clickOnSendCommandToRobot() { Robotviewmodel temp = new Robotviewmodel(); temp.setmessage("message"); temp.setCommand(true); model.add(temp); adapter.notifyItemInserted(model.size() - 1); binding.registerRobot.scrollToPosition(adapter.getItemCount() - 1); }@H_404_5@我的适配器类:
public class RobotmessagesAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private List<Robotviewmodel> list; private LayoutInflater inflater; public RobotmessagesAdapter(List<Robotviewmodel> robotviewmodels) { this.list = robotviewmodels; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent,int viewTypE) { if (inflater == null) { inflater = LayoutInflater.from(parent.getContext()); } if (viewType == SV.RobotmessageType.SENT_BY_USER.ordinal()) { return new U@R_489_9260@ewHolder(UsermessagesDataBinding.inflate(inflater,parent,falsE)); } else { return new RobotViewHolder(RobotDataBinding.inflate(inflater,falsE)); } } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder,int position) { switch (getItemViewType(position)) { case 0: ((U@R_489_9260@ewHolder) holder).bind(list.get(position)); break; case 1: ((RobotViewHolder) holder).bind(list.get(position)); break; } } ... public void setData(List<Robotviewmodel> data) { Log.e("data size ",data.size() + ""); list.clear(); list.addAll(data); } }@H_404_5@我想知道为什么这段代码工作正常:
@Override protected void onRestoreInstanceState(Bundle outStatE) { model = ParcelS.Unwrap(outState.getParcelable("model")); adapter.setData(model); adapter.notifyItemInserted(model.size() - 1); binding.registerRobot.scrollToPosition(adapter.getItemCount() - 1); Robotviewmodel temp = new Robotviewmodel(); temp.setmessage("message"); temp.setCommand(true); model.add(temp); adapter.notifyItemInserted(model.size() - 1); binding.registerRobot.scrollToPosition(adapter.getItemCount() - 1); }@H_404_5@没有任何问题,后移动这行:
Robotviewmodel temp = new Robotviewmodel(); temp.setmessage("message"); temp.setCommand(true); model.add(temp); adapter.notifyItemInserted(model.size() - 1); binding.registerRobot.scrollToPosition(adapter.getItemCount() - 1);@H_404_5@到其他不起作用的方法:|
我的主持人:
public class ActivityRegisterPresenter { private ActivityRegisterContract view; public ActivityRegisterPresenter(ActivityRegisterContract mView) { view = mView; } ... }@H_404_5@和我的viewmodel:
public class ActivityRegisterviewmodel extends BaSEObservable { private String ReadContactPermission; private String getmessages; public ActivityRegisterviewmodel() { } @Bindable public String getReadContactPermission() { return ReadContactPermission; } public void setReadContactPermission(String ReadContactPermission) { this.ReadContactPermission = ReadContactPermission; notifyChange(); } public String getGetmessages() { return getmessages; } public void setGetmessages(String getmessages) { this.getmessages = getmessages; } }@H_404_5@
以上是大佬教程为你收集整理的Android刷新适配器工作后再次旋转设备全部内容,希望文章能够帮你解决Android刷新适配器工作后再次旋转设备所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。