如何从GridView中获取所选项目并在ListView中显示

时间:2016-05-27 12:44:39

标签: android listview gridview selecteditem

我有GridView,其中包含项目数,如果用户点击保存按钮然后在ListView中显示选中的值,我试过但没有成功,任何人都可以帮忙解决这个问题吗?

MainActivity.java

fillDataMyProperty();
        if (myPropertyArrayList != null && myPropertyArrayList.size() > 0) {
            myPropertListAdapter = new MyPropertListAdapter(MainActivity.this, myPropertyArrayList, txtSubmit);
            gridMyProperty.setAdapter(myPropertListAdapter);
        }

我的GridAdapter

 public class MyPropertListAdapter extends BaseAdapter {

            private Context context;
            private ArrayList<ItemModel> arrayList;
            private boolean check = false;
            private View view;
            private TextView txtSubmit;

            public MyPropertListAdapter(Context context, ArrayList<ItemModel> arrayList, TextView txtSubmit) {
                this.context = context;
                this.arrayList = arrayList;
                this.txtSubmit = txtSubmit;
            }

            @Override
            public int getCount() {
                return arrayList.size();
            }

            @Override
            public Object getItem(int position) {
                // TODO Auto-generated method stub
                return position;
            }

            @Override
            public long getItemId(int position) {
                // TODO Auto-generated method stub
                return position;
            }

            @Override
            public int getViewTypeCount() {
                return super.getViewTypeCount();
            }

            @SuppressLint("InflateParams")
            @Override
            public View getView(final int position, View convertView, ViewGroup parent) {
                LayoutInflater inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                final ViewHolder viewHolder;
                if (convertView == null) {
                    convertView = inflater.inflate(R.layout.grid_item_row, null);
                    viewHolder = new ViewHolder();

                    viewHolder.txtItem = (TextView) convertView.findViewById(R.id.txtItem);
                    viewHolder.rlMain = (RelativeLayout) convertView.findViewById(R.id.rlMain);
                    viewHolder.imgCheck = (ImageView) convertView.findViewById(R.id.imgCheck);

                    convertView.setTag(viewHolder);
                } else {
                    viewHolder = (ViewHolder) convertView.getTag();
                }
                viewHolder.txtItem.setText(arrayList.get(position).getItem_name());

                if (arrayList.get(position).isCheck() == true) {
                    viewHolder.txtItem.setBackgroundResource(R.drawable.ic_green_facility);
                    Glide.with(context).load(R.drawable.ic_facility_check).placeholder(R.mipmap.ic_launcher).error(R.mipmap.ic_launcher).dontAnimate().into(viewHolder.imgCheck);
                } else if (arrayList.get(position).isCheck() == false) {
                    viewHolder.txtItem.setBackgroundResource(R.drawable.ic_white_facility);
                    viewHolder.imgCheck.setVisibility(View.GONE);
                }

                viewHolder.rlMain.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        view = v;
                        if (arrayList.get(position).isCheck() == false) {
                            Log.d("if---------------------", String.valueOf(arrayList.get(position).isCheck()));
                            viewHolder.txtItem.setBackgroundResource(R.drawable.ic_green_facility);
                            viewHolder.imgCheck.setVisibility(View.VISIBLE);
                            Glide.with(context).load(R.drawable.ic_facility_check).placeholder(R.mipmap.ic_launcher).error(R.mipmap.ic_launcher).dontAnimate().into(viewHolder.imgCheck);
                            arrayList.get(position).setCheck(true);
                            check = true;
                        } else if (arrayList.get(position).isCheck() == true) {
                            Log.d("else-------------------", String.valueOf(arrayList.get(position).isCheck()));
                            viewHolder.txtItem.setBackgroundResource(R.drawable.ic_white_facility);
                            viewHolder.imgCheck.setVisibility(View.GONE);
                            arrayList.get(position).setCheck(false);
                            check = false;
                        }
                    }
                });
                txtSubmit.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
   showItemsDilaog();
                    }
                });
                return convertView;
            }

            public class ViewHolder {
                TextView txtItem;
                RelativeLayout rlMain;
                ImageView imgCheck;
            }

            private void showItemsDilaog() {
                final Dialog mDialog = new Dialog(context);
                mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
                mDialog.setContentView(R.layout.dialog_list_item);
                ImageView imgCancel = (ImageView) mDialog.findViewById(R.id.imgCancel);
                ListView listItem = (ListView) mDialog.findViewById(R.id.listItem);
                if (arrayList != null && arrayList.size() > 0) {
                    ItemsAdapter mAdapter = new ItemsAdapter(context, arrayList);
                    listItem.setAdapter(mAdapter);
                }
                imgCancel.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        mDialog.dismiss();
                    }
                });
                mDialog.show();
            }}

ItemsAdapter.Java

class ItemsAdapter extends BaseAdapter {
            //        private String[] mStrings = new String[]{"Elevator", "Air Conditionor", "Electricity", "Houe Keeping", "Garden", "All"};
            private ViewHolder viewHolder;
            private Context context;
            private ArrayList<ItemModel> mArrayList;

            public ItemsAdapter(Context context, ArrayList<ItemModel> maintananceModelArrayList) {
                this.context = context;
                this.mArrayList = maintananceModelArrayList;
            }

            @Override
            public int getCount() {
                return mArrayList.size();
            }

            @Override
            public Object getItem(int position) {
                return mArrayList.get(position);
            }

            @Override
            public long getItemId(int position) {
                return position;
            }

            @Override
            public View getView(final int position, View convertView, ViewGroup parent) {
                LayoutInflater inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView = null;
                if (convertView == null) {
                    convertView = inflater.inflate(R.layout.item_row, null);
                    viewHolder = new ViewHolder();

                    viewHolder.txtItem = (TextView) convertView.findViewById(R.id.txtItem);
                    viewHolder.lineSeperator = (View) convertView.findViewById(R.id.lineSeperator);
                    convertView.setTag(viewHolder);
                } else {
                    viewHolder = (ViewHolder) convertView.getTag();
                }

                if (arrayList.get(position).isCheck() == true) {
                    viewHolder.txtItem.setText(arrayList.get(position).getItem_name());
                    Log.d("Items:::::::::::::::",arrayList.get(position).getItem_name());
                }

                if (position == arrayList.size() - 1) {
                    viewHolder.lineSeperator.setVisibility(View.GONE);
                } else {
                    viewHolder.lineSeperator.setVisibility(View.VISIBLE);
                }
                return convertView;
            }

            public class ViewHolder {
                TextView txtItem;
                View lineSeperator;
            }
        }

0 个答案:

没有答案