列表彈出框

 

private void showTypeDialog(){
        List<TypeBean> applyBeans = new ArrayList<>();
        for (int i=0;i<5;i++) {
            TypeBean applyBean = new TypeBean();
            applyBean.setName("申請類型"+i);

            applyBeans.add(applyBean);
        }

        AlertDialog.Builder listDialog = new AlertDialog.Builder(mContext);
        listDialog.setTitle("選擇審批類型");
//        listDialog.setItems();
        ArrayApplyAdapter adapter = new ArrayApplyAdapter(mContext, R.layout.apply_child, applyBeans);

        adapter.setOnItemClickListener(new ArrayApplyAdapter.onAItemClickListener() {
            @Override
            public void onItemClick(int position) {
                Log.e(TAG, "22222  ArrayApplyAdapter onItemClick position="+position);
            }

            @Override
            public void onChildItemClick(int position) {
                Log.e(TAG, "22222  ArrayApplyAdapter onChildItemClick position="+position);
            }
        });

        listDialog.setAdapter(adapter, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Log.e(TAG, "i="+i);
            }
        });
        listDialog.show();
    }
}

ArrayApplyAdapter.java

public class ArrayApplyAdapter extends ArrayAdapter<TypeBean> {
    private static final String TAG = "ArrayApplyAdapter";
    private int mResource;
    private Context mContext;
    public ArrayApplyAdapter(@NonNull Context context, int resource, @NonNull List<TypeBean> objects) {
        super(context, resource, objects);
        mResource = resource;
        mContext = context;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        TypeBean typeBean = getItem(position);
        View view = LayoutInflater.from(mContext).inflate(mResource, parent, false);
        ImageView imageView = view.findViewById(R.id.iv_type);
        imageView.setImageResource(R.drawable.ic_banner_selected);
        TextView textView = view.findViewById(R.id.tv_type);
        textView.setText(typeBean.getName());
        CustomGridView gv_type = view.findViewById(R.id.gv_child);
        List<WorkBean> groupList = new ArrayList<>();
        for (int i=0;i<2;i++) {
            WorkBean workBean = new WorkBean();
            workBean.setImgPath(String.valueOf(R.drawable.icon_dang));
            workBean.setName("類型名"+i);
            groupList.add(workBean);
        }

        ChildAdapter childAdapter = new ChildAdapter(mContext,groupList);
        gv_type.setAdapter(childAdapter);
        gv_type.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                Log.e(TAG,"3333333333333333");
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
                Log.e(TAG,"44444444444");
            }
        });

        gv_type.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Log.e(TAG,"sdfsdfsdf");
                listener.onChildItemClick(i);
            }
        });

        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                listener.onItemClick(position);
            }
        });
        return view;
    };

    public interface onAItemClickListener{
        void onItemClick(int position);
        void onChildItemClick(int position);
    }

    private onAItemClickListener listener;
    public void setOnItemClickListener (onAItemClickListener onItemClickListener) {
        listener = onItemClickListener;
    }

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章