• Android Studio 三级树形列表


      前几篇详细介绍了二级树形列表的实现,以及通用方法封装,今天就详细介绍一下三级树形列表的基本实现。如果理解了前几篇的二级树形列表实现,那么三级列表实现就简单了。

       说直白点就是在二级列表里在嵌套一个二级列表,就简单解决了。不详细在去介绍了,直接上代码吧。

       模型:ThreeTreeModel

    package com.example.appview.mian_page.Frament.Preject_Tance_Frament.ItemA_Model;
    
    import java.util.Date;
    import java.util.List;
    
    public class ThreeTreeModel {
        private int CaiJiId;
        private String CaiJiSNO;
        private List<DianBiao> dianBiaoList;
        private Date AddTime;
    
        public void setCaiJiId(int caiJiId) {
            CaiJiId = caiJiId;
        }
    
        public void setCaiJiSNO(String caiJiSNO) {
            CaiJiSNO = caiJiSNO;
        }
    
        public void setDianBiaoList(List<DianBiao> dianBiaoList) {
            this.dianBiaoList = dianBiaoList;
        }
    
        public void setAddTime(Date addTime) {
            AddTime = addTime;
        }
    
    
        public int getCaiJiId() {
            return CaiJiId;
        }
    
        public String getCaiJiSNO() {
            return CaiJiSNO;
        }
    
        public List<DianBiao> getDianBiaoList() {
            return dianBiaoList;
        }
    
        public Date getAddTime() {
            return AddTime;
        }
    
      public   static class DianBiao{
            private int DianBiaoId;
            private String DianBiaoSNO;
            private List<SheBei> sheBeiList;
            private Date AddTime;
    
            public void setDianBiaoId(int dianBiaoId) {
                DianBiaoId = dianBiaoId;
            }
    
            public void setDianBiaoSNO(String dianBiaoSNO) {
                DianBiaoSNO = dianBiaoSNO;
            }
    
            public void setSheBeiList(List<SheBei> sheBeiList) {
                this.sheBeiList = sheBeiList;
            }
    
            public void setAddTime(Date addTime) {
                AddTime = addTime;
            }
    
            public int getDianBiaoId() {
                return DianBiaoId;
            }
    
            public String getDianBiaoSNO() {
                return DianBiaoSNO;
            }
    
            public List<SheBei> getSheBeiList() {
                return sheBeiList;
            }
    
            public Date getAddTime() {
                return AddTime;
            }
        }
       public static class SheBei{
            private int SheBeiId;
            private String SheBeiName;
            private Date AddTime;
    
            public void setSheBeiId(int sheBeiId) {
                SheBeiId = sheBeiId;
            }
    
            public void setSheBeiName(String sheBeiName) {
                SheBeiName = sheBeiName;
            }
    
            public void setAddTime(Date addTime) {
                AddTime = addTime;
            }
    
            public int getSheBeiId() {
                return SheBeiId;
            }
    
            public String getSheBeiName() {
                return SheBeiName;
            }
    
            public Date getAddTime() {
                return AddTime;
            }
        }
    }

    一级通用类:ParentAdapterHelper

    package com.example.appview.mian_page.Frament.Preject_Tance_Frament.ItemA_Model.Tree;
    
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AbsListView;
    import android.widget.BaseExpandableListAdapter;
    import android.widget.TextView;
    
    import androidx.annotation.NonNull;
    import androidx.annotation.Nullable;
    
    import com.example.appview.R;
    import com.example.appview.mian_page.Frament.Preject_Tance_Frament.ItemA_Model.ThreeTreeModel;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.ListIterator;
    
    public class ParentAdapterHelper<T1 extends ExpandableListViewInterface,T2 extends ExpandableListViewInterface,T3 extends ExpandableListViewInterface> extends BaseExpandableListAdapter {
        private Context context;
        private List<ThreeTreeModel> CaiJiModel;//国家的集合
        LayoutInflater layoutInflater;
        private T1 t1;
        private T2 t2;
        private T3 t3;
       public ChildenAdapterHelper<T2,T3> adapter;
        public ParentAdapterHelper(Context context, List<ThreeTreeModel> CaiJiModel,T1 t1,T2 t2,T3 t3){
            this.context=context;
            this.CaiJiModel=CaiJiModel;
            this.t1=t1;
            this.t2=t2;
            this.t3=t3;
            layoutInflater = LayoutInflater.from(context);
        }
        //添加一个组元素
        public void add(ThreeTreeModel data) {
            if (CaiJiModel == null) {
                CaiJiModel = new ArrayList<>();
            }
            CaiJiModel.add(data);
            notifyDataSetChanged();
        }
    
        //往特定位置,添加一个组元素
        public void add(int position, ThreeTreeModel data) {
            if (CaiJiModel == null) {
                CaiJiModel= new ArrayList<>();
            }
            CaiJiModel.add(position, data);
            notifyDataSetChanged();
        }
        //往特定位置,添加一个组元素
        public void addItem(int position,int childenposition, ThreeTreeModel.DianBiao data) {
    
            CaiJiModel.get(position).getDianBiaoList().add(data);
    
            notifyDataSetChanged();
        }
        //移除当前数据的组件
        public void remove(ThreeTreeModel data) {
            if (CaiJiModel != null) {
                CaiJiModel.remove(data);
            }
            notifyDataSetChanged();
        }
        //移除当前位置的组件
        public void remove(int position) {
            if (CaiJiModel != null) {
                CaiJiModel.remove(position);
            }
            notifyDataSetChanged();
        }
    
        public void clear() {
            if (CaiJiModel!= null) {
                CaiJiModel.clear();
            }
            notifyDataSetChanged();
        }
        // 组数量
        @Override
        public int getGroupCount() {
            return CaiJiModel.size();
        }
        //子View数量
        @Override
        public int getChildrenCount(int i) {
            return 1;
        }
        //获取组对象
        @Override
        public Object getGroup(int i) {
            return CaiJiModel.get(i);
        }
        //获取子View对象
        @Override
        public Object getChild(int i, int i1) {
            return CaiJiModel.get(i).getDianBiaoList().get(i1);
        }
        // 组View下标
        @Override
        public long getGroupId(int i) {
            return i;
        }
        //子View下标
        @Override
        public long getChildId(int i, int i1) {
            return i1;
        }
    
        @Override
        public boolean hasStableIds() {
            return false;
        }
    
        @Override
        public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
            convertView=  layoutInflater.inflate(R.layout.preject_item_addcaiji_onetree, null);
            TextView textView = convertView.findViewById(R.id.preject_item_caijiqi_onetree);
            textView.setText(CaiJiModel.get(groupPosition).getCaiJiSNO());
            return t1.getGroupView(groupPosition,convertView);
        }
        @Override
        public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
            AbsListView.LayoutParams params = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            ChildenExpandableListView childenExpandableListView=new ChildenExpandableListView(context);
            childenExpandableListView.setLayoutParams(params);
            adapter = new ChildenAdapterHelper(context,CaiJiModel.get(groupPosition).getDianBiaoList(),t2,t3);
            childenExpandableListView.setAdapter(adapter);
            childenExpandableListView.setPadding(30, 5, 0, 5);
            return childenExpandableListView;
        }
        @Override
        public boolean isChildSelectable(int groupPosition, int childPosition) {
            return false;
        }
    }

    接口:ExpandableListViewInterface

    package com.example.appview.mian_page.Frament.Preject_Tance_Frament.ItemA_Model.Tree;
    
    import android.view.View;
    import android.view.ViewGroup;
    
    public interface ExpandableListViewInterface {
        public View getGroupView(int groupPosition, View convertView);
        public View getChildView(int groupPosition, int childPosition, View convertView);
    }

    二级:ChildenAdapterHelper

    package com.example.appview.mian_page.Frament.Preject_Tance_Frament.ItemA_Model.Tree;
    
    import android.app.Activity;
    import android.content.Context;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseExpandableListAdapter;
    import android.widget.TextView;
    import com.example.appview.R;
    import com.example.appview.mian_page.Frament.Preject_Tance_Frament.ItemA_Model.ThreeTreeModel;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.concurrent.TransferQueue;
    
    public class ChildenAdapterHelper<T1 extends ExpandableListViewInterface,T2 extends ExpandableListViewInterface> extends BaseExpandableListAdapter {
        private Context context;
        private List<ThreeTreeModel.DianBiao> dianBiaoList;//电表集合
        LayoutInflater layoutInflater;
        private T1 t1;
        private T2 t2;
        //构造参数
        public ChildenAdapterHelper(Context context,List<ThreeTreeModel.DianBiao> dianBiaoList,T1 t1,T2 t2) {
           this.context=context;
           this.dianBiaoList=dianBiaoList;
           this.t1=t1;
           this.t2=t2;
            layoutInflater = LayoutInflater.from(context);
        }
        //添加一个组元素
        public void add(ThreeTreeModel.DianBiao data) {
            if (dianBiaoList == null) {
                dianBiaoList = new ArrayList<>();
            }
            dianBiaoList.add(data);
            notifyDataSetChanged();
        }
        //往特定位置,添加一个组元素
        public void add(int position, ThreeTreeModel.DianBiao data) {
            if (dianBiaoList == null) {
                dianBiaoList= new ArrayList<>();
            }
            dianBiaoList.add(position, data);
            notifyDataSetChanged();
        }
    
        //移除当前数据的组件
        public void remove(ThreeTreeModel.DianBiao data) {
            if (dianBiaoList != null) {
                dianBiaoList.remove(data);
            }
            notifyDataSetChanged();
        }
        //移除当前位置的组件
        public void remove(int position) {
            if (dianBiaoList != null) {
                dianBiaoList.remove(position);
            }
            notifyDataSetChanged();
        }
        //往特定位置,添加一个子元素
        public void addItem(int position, ThreeTreeModel.SheBei data) {
            dianBiaoList.get(position).getSheBeiList().add(data);
            notifyDataSetChanged();
        }
        //移除当前位置的组件
        public void removeItem(int position,int childenposition) {
            if (dianBiaoList.get(position).getSheBeiList() != null) {
                dianBiaoList.get(position).getSheBeiList().remove(childenposition);
            }
            notifyDataSetChanged();
        }
        //获取外层组个数
        @Override
        public int getGroupCount() {
            return dianBiaoList.size();
        }
        //获取内层组个数
        @Override
        public int getChildrenCount(int i) {
            return dianBiaoList.get(i).getSheBeiList().size();
        }
        //获取外层组
        @Override
        public Object getGroup(int i) {
            return dianBiaoList.get(i);
        }
        //获取内层数据
        @Override
        public Object getChild(int i, int i1) {
            return dianBiaoList.get(i).getSheBeiList().get(i1);
        }
        //组下标
        @Override
        public long getGroupId(int i) {
            return i;
        }
        //子View下标
        @Override
        public long getChildId(int i, int i1) {
            return i1;
        }
        //不知道做什么用
        @Override
        public boolean hasStableIds() {
            return false;
        }
        @Override
        public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
            convertView=  layoutInflater.inflate(R.layout.preject_item_addcaiji_twotree, null);
            TextView textView = convertView.findViewById(R.id.preject_item_dianbiao);
            convertView.setPadding(10,5,0,5);
            textView.setGravity(Gravity.CENTER_VERTICAL|Gravity.LEFT);
            textView.setText(dianBiaoList.get(groupPosition).getDianBiaoSNO());
            return t1.getGroupView(groupPosition,convertView);
        }
    
        @Override
        public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
            convertView=  layoutInflater.inflate(R.layout.preject_item_addcaiji_threetree, null);
            TextView textView = convertView.findViewById(R.id.preject_item_shebeiname);
            convertView.setPadding(30,5,0,5);
            textView.setGravity(Gravity.CENTER_VERTICAL|Gravity.LEFT);
            textView.setText(dianBiaoList.get(groupPosition).getSheBeiList().get(childPosition).getSheBeiName());
            return t2.getChildView(groupPosition,childPosition,convertView);
        }
    
        @Override
        public boolean isChildSelectable(int groupPosition, int childPosition) {
            return false;
        }
    }

    自适应高度类:ChildenExpandableListView

    package com.example.appview.mian_page.Frament.Preject_Tance_Frament.ItemA_Model.Tree;
    
    import android.content.Context;
    import android.util.AttributeSet;
    import android.widget.ExpandableListView;
    
    public class ChildenExpandableListView extends ExpandableListView {
        public ChildenExpandableListView(Context context) {
            super(context);
        }
    
        public ChildenExpandableListView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public ChildenExpandableListView(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
        //通过此方法重新计算expandableListView的高度,使得里边的expandableListView全部显示
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2
                    , MeasureSpec.AT_MOST);
            super.onMeasure(widthMeasureSpec, expandSpec);
        }
    
    
    }

    实现类:

    package com.example.appview.mian_page.Frament.Preject_Tance_Frament;
    
    import android.app.AlertDialog;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.graphics.drawable.BitmapDrawable;
    import android.graphics.drawable.GradientDrawable;
    import android.os.Build;
    import android.os.Bundle;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.ListView;
    import android.widget.PopupWindow;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import androidx.annotation.Nullable;
    import androidx.annotation.RequiresApi;
    import androidx.fragment.app.Fragment;
    
    import com.example.appview.Common.AdapterHelper;
    import com.example.appview.Common.AdapterInterface;
    import com.example.appview.MainActivity;
    import com.example.appview.Model.main_menu.Preject_ItemModel;
    import com.example.appview.R;
    import com.example.appview.mian_page.Activity.LoginMainPage;
    import com.example.appview.mian_page.Frament.Preject_Tance_Frament.ItemA_Activity.Preject_ItemA_AlterJZ;
    import com.example.appview.mian_page.Frament.Preject_Tance_Frament.ItemA_Activity.Preject_Item_AddJL;
    
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    /**
     * 探测待处理页面
     */
    public class Preject_ItemA_Frament extends Fragment {
        private List<Preject_ItemModel> preject_itemModels;
        private AdapterHelper<Preject_ItemModel,NoReceive> adapteritem;
        private ListView listView;
        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
        {
            View view = inflater.inflate(R.layout.preject_item1_frament, container, false);
            listView=view.findViewById(R.id.preject_item1_listview);
            preject_itemModels=new ArrayList<>();
            preject_itemModels=getPreject_itemModels();
            adapteritem=new AdapterHelper<>(getContext(),preject_itemModels,new NoReceive(),R.layout.maingrid_layout4);
            listView.setAdapter(adapteritem);
            return view;
        }
        private List<Preject_ItemModel> getPreject_itemModels(){
            List<Preject_ItemModel> preject_itemModels=new ArrayList<>();
            preject_itemModels.add(new Preject_ItemModel(1,"XX端局",1,1,"待接收", new Date(System.currentTimeMillis())));
            preject_itemModels.add(new Preject_ItemModel(2,"XX支局",2,2,"待接收", new Date(System.currentTimeMillis())));
            preject_itemModels.add(new Preject_ItemModel(3,"XX基站",3,1,"待接收", new Date(System.currentTimeMillis())));
            preject_itemModels.add(new Preject_ItemModel(4,"XX一体化",4,1,"待接收", new Date(System.currentTimeMillis())));
            return  preject_itemModels;
        }
    
        @Override
        public void onHiddenChanged(boolean hidden) {
            super.onHiddenChanged(hidden);
            if(hidden){
                //TODO now visible to user
              //  Toast.makeText(getContext(), "你离开了该页面", Toast.LENGTH_SHORT).show();
    
            } else {
                //TODO now invisible to user
    
                preject_itemModels.add(new Preject_ItemModel(5,"XX宏基站",4,1,"待接收", new Date(System.currentTimeMillis())));
    
                adapteritem=new AdapterHelper<>(getContext(),preject_itemModels,new NoReceive(),R.layout.maingrid_layout4);
                listView.setAdapter(adapteritem);
            }
        }
    
        class NoReceive implements AdapterInterface{
    
            @Override
            public View getView(View view, int position){
                ImageView imageView1=view.findViewById(R.id.preject_item_jztype);
                TextView textView1=view.findViewById(R.id.preject_item_jzname);
                TextView textView2=view.findViewById(R.id.preject_item_jzstate);
                TextView textView3=view.findViewById(R.id.preject_item_addtime);
                ImageView imageView2=view.findViewById(R.id.preject_item_jzcaozuo);
                LinearLayout linearLayout=view.findViewById(R.id.preject_item_layoutcaozuo);
                textView1.setText(adapteritem.list.get(position).getJZ_Name());
                textView2.setText(adapteritem.list.get(position).getJZ_StateName());
                 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// HH:mm:ss
                  textView3.setText(simpleDateFormat.format(adapteritem.list.get(position).getAddTime()));
                if (adapteritem.list.get(position).getJZ_TypeId()==1){
                    imageView1.setImageResource(R.mipmap.duanju);
                }
                if (adapteritem.list.get(position).getJZ_TypeId()==2){
                    imageView1.setImageResource(R.mipmap.zhiju);
                }
                if (adapteritem.list.get(position).getJZ_TypeId()==3){
                    imageView1.setImageResource(R.mipmap.jizhan);
                }
                if (adapteritem.list.get(position).getJZ_TypeId()==4){
                    imageView1.setImageResource(R.mipmap.qita);
                }
                if (adapteritem.list.get(position).getJZ_State()==1){
                    textView2.setTextColor(getResources().getColor(R.color.preject_item1));
                    imageView2.setImageResource(R.mipmap.preject_item_caozuo);
                }
                if (adapteritem.list.get(position).getJZ_State()==2){
                    textView2.setTextColor(getResources().getColor(R.color.preject_item2));
                    imageView2.setImageResource(R.mipmap.preject_itema_alter);
                }
                if (adapteritem.list.get(position).getJZ_State()==3){
                    textView2.setTextColor(getResources().getColor(R.color.preject_item3));
                }
    
                imageView2.setOnClickListener(new View.OnClickListener() {
                    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
                    @Override
                    public void onClick(View v) {
                     View popupView = View.inflate(getContext(), R.layout.preject_item_pop, null);
    
    
                    // PopupWindowFactory.getPopupWindowInCenter(popupView,ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT,linearLayout);
                   getScreen(linearLayout,position);
                    }
                });
                return view;
            }
        }
    
        @RequiresApi(api = Build.VERSION_CODES.KITKAT)
        private void getScreen(LinearLayout linearLayout,int position){
            if (adapteritem.list.get(position).getJZ_State()==1){
                getNoreceive(linearLayout,position);
            }
            if (adapteritem.list.get(position).getJZ_State()==2){
                getAlter(linearLayout,position);
            }
    
    
        }
        private void getAlter(LinearLayout linearLayout,int position){
            View popupView = View.inflate(getContext(), R.layout.preject_item_pop_alter, null);
            Button btn1=popupView.findViewById(R.id.preject_item_alter_btn1);
            Button btn2=popupView.findViewById(R.id.preject_item_alter_btn2);
             if (adapteritem.list.get(position).getJZ_TypeId()==3){
                 btn1.setText("添加采集器");
             }else{
                 btn1.setText("添加机楼");
             }
            GradientDrawable drawable1 =(GradientDrawable)btn1.getBackground();
            drawable1.setColor(getResources().getColor(R.color.preject4));
            GradientDrawable drawable2 =(GradientDrawable)btn2.getBackground();
            drawable2.setColor(getResources().getColor(R.color.preject3));
            PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            popupWindow.setFocusable(true);
            popupWindow.setOutsideTouchable(true);
            popupWindow.setAnimationStyle(R.anim.move_pop_left_in);
            popupWindow.setBackgroundDrawable(new BitmapDrawable());
            int popupWidth = popupView.getMeasuredWidth();
            int popupHeight =  popupView.getMeasuredHeight();
            int[] location = new int[2];
            linearLayout.getLocationOnScreen(location);
            popupWindow.showAtLocation(linearLayout, Gravity.NO_GRAVITY, location[0], location[1]);
            btn1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    popupWindow.dismiss();
                    Intent i = new Intent(getContext(), Preject_Item_AddJL.class);
    
                    startActivity(i);
                    Toast.makeText(getContext(), "添加机楼", Toast.LENGTH_SHORT).show();
    
                }
            });
            btn2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    popupWindow.dismiss();
                    Intent i = new Intent(getContext(), Preject_ItemA_AlterJZ.class);
                    startActivity(i);
                   // Toast.makeText(getContext(), "编辑站点", Toast.LENGTH_SHORT).show();
                }
            });
    
        }
        private void getNoreceive(LinearLayout linearLayout,int position){
            View popupView = View.inflate(getContext(), R.layout.preject_item_pop, null);
            Button btn1=popupView.findViewById(R.id.preject_itemA_btn1);
            Button btn2=popupView.findViewById(R.id.preject_itemA_btn2);
            Button btn3=popupView.findViewById(R.id.preject_itemA_btn3);
            GradientDrawable drawable1 =(GradientDrawable)btn1.getBackground();
            drawable1.setColor(getResources().getColor(R.color.preject4));
            GradientDrawable drawable2 =(GradientDrawable)btn2.getBackground();
            drawable2.setColor(getResources().getColor(R.color.preject3));
            GradientDrawable drawable3 =(GradientDrawable)btn3.getBackground();
            drawable3.setColor(getResources().getColor(R.color.preject2));
            PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            popupWindow.setFocusable(true);
            popupWindow.setOutsideTouchable(true);
            popupWindow.setAnimationStyle(R.anim.move_pop_left_in);
            popupWindow.setBackgroundDrawable(new BitmapDrawable());
            int popupWidth = popupView.getMeasuredWidth();
            int popupHeight =  popupView.getMeasuredHeight();
            int[] location = new int[2];
            linearLayout.getLocationOnScreen(location);
            popupWindow.showAtLocation(linearLayout, Gravity.NO_GRAVITY, location[0], location[1]);
            btn1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    popupWindow.dismiss();
                    Toast.makeText(getContext(), "转派", Toast.LENGTH_SHORT).show();
                    ShowChoise();
                }
            });
            btn2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    popupWindow.dismiss();
                    Toast.makeText(getContext(), "接收", Toast.LENGTH_SHORT).show();
                }
            });
            btn3.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    popupWindow.dismiss();
                    Toast.makeText(getContext(), "拒绝", Toast.LENGTH_SHORT).show();
                }
            });
        }
        private  void getReceive(){
    
        }
        private void ShowChoise()
        {
    
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),android.R.style.Theme_Holo_Light_Dialog);
            //builder.setIcon(R.drawable.ic_launcher);
            builder.setTitle("请选择指派人");
            //    指定下拉列表的显示数据
            final String[] cities = {"张三", "李四", "王二","麻子"};
            //    设置一个下拉的列表选择项
            builder.setItems(cities, new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialog, int which)
                {
                    Toast.makeText(getActivity(), "选择的指派人为:" + cities[which], Toast.LENGTH_SHORT).show();
                }
            });
            builder.show();
        }
    }

    其它的布局页面就不多说了,理解树形列表的话,这个可以自己定义了。下面是实现效果。

    树形列表到这里基本就结束了,三级树形列表还没有做封装,这个可能要放到以后去做了。目前就先介绍到这里。

    .Net Core
  • 相关阅读:
    excel 常用小技巧
    如何以正确的顺序重新安装驱动程序
    kaby LAKE 仅支持 Windows10
    关闭远程计算机CMD命令
    根据IP查主机名
    Charles安装与使用
    常用的算法思想总结
    iOS学习之单例模式
    PHP之简单实现MVC框架
    Objective-C 继承和多态
  • 原文地址:https://www.cnblogs.com/zpy1993-09/p/15209244.html
Copyright © 2020-2023  润新知