Renderings
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); initData(); LinearLayoutManager manager = new LinearLayoutManager(mActivity); mTreeListRecy = view.findViewById(R.id.mTreeListRecy); if (mTreeListRecy != null) { mTreeListRecy.setLayoutManager(manager); mTreeListRecy.setAdapter(adapter); //Tree2HeaderView tree2HeaderView = new Tree2HeaderView(mActivity); treeHeaderView = new TreeHeaderView(mActivity,dataList); adapter.addHeaderView(treeHeaderView); //ArrayList<String> list = new ArrayList<>(); //for (int i = 0; i < 30; i + + ) { //list.add("data" + i); //} //adapter.addData(list); initNode(); } else { Log.e("GoodItemTreeFragment", "mTreeListRecy is null"); } }
2. Key code initNode function
public void initNode(){ treeHeaderView.getAdapter().setTreeCheckedChangeListener(new TreeRecyclerViewAdapter.OnTreeCheckedChangeListener() { @Override public void onAddItem(NodeBean nodeBean) { //View v = LayoutInflater.from(mContext).inflate(R.layout.popup_good_tree, null); //Log.e("TAG1231", "onAddItem position: " + nodeBean.getId()); popupWindows = new CommonPopupWindow.Builder(getContext()) .setView(R.layout.popup_good_tree) .setWidthAndHeight(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT) .setViewOnclickListener(new CommonPopupWindow.ViewInterface() { @Override public void getChildView(View view, int layoutResId) { ImageView cancel=view.findViewById(R.id.cancel_button); TextView parent=view.findViewById(R.id.good_tree_parent); EditText treeWeigh=view.findViewById(R.id.good_tree_weigh); EditText treeName=view.findViewById(R.id.good_tree_name); TextView btnConfirm=view.findViewById(R.id.btn_confirm); cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { popupWindows.dismiss(); } }); //Add role btnConfirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //Log.e("New node", "onAddItem parent: " + //"Weight" + nodeBean.getId() + treeWeigh.getText().toString() // + "Specification name" + treeName.getText().toString()); dataList.add(new NodeBean(String.valueOf(dataList.size()), nodeBean.getId(), treeName.getText().toString())); refresh(); popupWindows.dismiss(); } }); } }) .setOutsideTouchable(true) .create(); popupWindows.showAtLocation(getView(), Gravity.BOTTOM, 0, 0); } @Override public void onEditItem(NodeBean nodeBean, int position) { //Log.e("TAG1231", "onEditItem position: " + nodeBean.getName()); popupWindows = new CommonPopupWindow.Builder(getContext()) .setView(R.layout.popup_good_tree) .setWidthAndHeight(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT) .setViewOnclickListener(new CommonPopupWindow.ViewInterface() { @Override public void getChildView(View view, int layoutResId) { ImageView cancel=view.findViewById(R.id.cancel_button); EditText treeWeigh=view.findViewById(R.id.good_tree_weigh); EditText treeName=view.findViewById(R.id.good_tree_name); TextView btnConfirm=view.findViewById(R.id.btn_confirm); treeWeigh.setText(nodeBean.getId()); treeName.setText(nodeBean.getName()); cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { popupWindows.dismiss(); } }); //Add role btnConfirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.e("Save Node", "onAddItem parent: " + "Weight" + nodeBean.getId() + treeWeigh.getText().toString() + "Specification name" + treeName.getText().toString()); } }); } }) .setOutsideTouchable(true) .create(); popupWindows.showAtLocation(view, Gravity.BOTTOM, 0, 0); } @Override public void onDeleItem(NodeBean nodeBean, int position) { //Log.e("TAG1231", "onDeleItem position: " + nodeBean.getName()); confirmDelete(nodeBean.getId()); } }); }
3. Notification refresh refresh function.
public void refresh(){ // Remove the old TreeHeaderView if (adapter != null) { adapter.removeHeaderView(treeHeaderView); } //Create and add a new TreeHeaderView treeHeaderView = new TreeHeaderView(mActivity, dataList); treeHeaderView.setOnCheckedChangeListener(checkedChangeListener); adapter.addHeaderView(treeHeaderView); initNode(); // Refresh the entire list adapter.notifyDataSetChanged(); }
This function is implemented. After clicking to add a node, the interface is refreshed. Interested partners are welcome to study together.