如何在适配器类中设置值列表项并获取按钮单击android中的值

时间:2016-03-19 06:14:44

标签: android

适配器类:

public List<TSPDataModel> employeeData;
    private Context mContext;
    private LayoutInflater mInflater;
    RadioGroup radiogroupbutton;
    String[] data = {"Document not clear","Adress is not Visibile","Photo is not pasted","Signature is not Avilable"};
    String   value;
    public TSPListDocumentadapter(Context context, int textViewResourceId,
                                  List<TSPDataModel> objects)

    {
        this.employeeData = objects;
        this.mContext = context;
        mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        final ViewHolder holder;

        if (convertView == null) {
            holder = new ViewHolder();
            convertView = mInflater.inflate(R.layout.tspdocumentlistitem, null);
            holder.relatvie1=(RelativeLayout)convertView.findViewById(R.id.relatvie1);
            holder.txtName = (TextView) convertView.findViewById(R.id.textView1);
            holder.accecpt = (ImageView) convertView.findViewById(R.id.imageButton);
            holder.reject = (ImageView) convertView.findViewById(R.id.imageButton2);
            holder.statustextview = (TextView) convertView.findViewById(R.id.statustextview);
            holder.poaedittext=(TextView) convertView.findViewById(R.id.poieditext);
           holder.poaedittext=(TextView)convertView.findViewById(R.id.poaedittext);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.txtName.setText(employeeData.get(position).getName());
        holder.poaedittext.setText(employeeData.get(position).getPoa());

        holder.accecpt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                holder.statustextview.setText("Accepted");

                employeeData.get(position).setSelected(true);
                employeeData.get(position).getOrderId();
                holder.relatvie1.setBackgroundResource(R.color.acceptedcolor);

            }
        });

        holder.reject.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showdilog();
                holder.statustextview.setText("Rejected");
                employeeData.get(position).setSelected(false);
                employeeData.get(position).setReasone(value);
                holder.relatvie1.setBackgroundResource(R.color.rejectcolor);
            }
        });


        return convertView;
    }

    static class ViewHolder {
        TextView txtName;
        ImageView reject;
        ImageView accecpt;
        TextView statustextview;
        TextView poiedittext;
        TextView poaedittext;
        RelativeLayout relatvie1;
    }

    public int getCount() {
        return employeeData.size();
    }

    public TSPDataModel getItem(int position) {
        return employeeData.get(position);
    }

    public long getItemId(int position) {
        return 0;
    }


    public void showdilog() {
        final Dialog dialog = new Dialog(mContext);
        dialog.setContentView(R.layout.layoutpopup);
        radiogroupbutton = (RadioGroup) dialog.findViewById(R.id.radio_gp_day);
        ListView listview = (ListView) dialog.findViewById(R.id.radio_slot_list);
        Button setbutton = (Button) dialog.findViewById(R.id.setbutton);
        List<String> list = new ArrayList<String>();
        ArrayAdapter<String> myadpter = new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_single_choice, data);
        for (int i = 0; i < data.length; i++) {
            list.add(data[i]);
        }
        listview.setAdapter(myadpter);
        listview.setItemsCanFocus(false);
        listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                value = data[position];
                Toast.makeText(mContext, value, Toast.LENGTH_LONG).show();
            }
        });
        setbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(mContext, value, Toast.LENGTH_LONG).show();
                dialog.dismiss();


            }
        });

        dialog.show();
    }

此按钮单击我的actvity类:

    @Override
    public void onClick(View view) {
        if (view.getId() == R.id.button1) {
            try {

                List<TSPDataModel> empData = adapter.employeeData;
                System.out.println("Total Size :" + empData.size());

                for (TSPDataModel employeeModel : empData) {
                    if (employeeModel.isSelected()) {
              Toast.makeText(TSPDocumentListActvity.this, employeeModel.getName(), Toast.LENGTH_LONG).show();
                    } else {

String Reasonse=   employeeModel.getresonse() ;                

                        Toast.makeText(TSPDocumentListActvity.this, "false" + employeeModel.getName(), Toast.LENGTH_LONG).show();
                    }
                }


            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }

首先我在Listview中打印数据,然后每个列表视图项都有接受和拒绝按钮就在那里当我们点击接受然后没有警报只会被要求拒绝按钮原因会询问哪个是在弹出窗口上的listitem我希望得到那个选择原因按钮点击动作,但我总是得到空值,请帮助我,我做错了

1 个答案:

答案 0 :(得分:2)

将拒绝按钮和showDialog代码更改为

holder.reject.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showdilog(position);
                holder.statustextview.setText("Rejected");
                holder.relatvie1.setBackgroundResource(R.color.rejectcolor);
            }
        });

和showDualog到

public void showdilog(int list_position) {
        final Dialog dialog = new Dialog(mContext);
        dialog.setContentView(R.layout.layoutpopup);
        radiogroupbutton = (RadioGroup) dialog.findViewById(R.id.radio_gp_day);
        ListView listview = (ListView) dialog.findViewById(R.id.radio_slot_list);
        Button setbutton = (Button) dialog.findViewById(R.id.setbutton);
        List<String> list = new ArrayList<String>();
        ArrayAdapter<String> myadpter = new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_single_choice, data);
        for (int i = 0; i < data.length; i++) {
            list.add(data[i]);
        }
        listview.setAdapter(myadpter);
        listview.setItemsCanFocus(false);
        listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                value = data[position];
                employeeData.get(list_position).setSelected(false);
                employeeData.get(list_position).setReasone(value);
                Toast.makeText(mContext, value, Toast.LENGTH_LONG).show();
            }
        });
        setbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(mContext, value, Toast.LENGTH_LONG).show();
                dialog.dismiss();


            }
        });

        dialog.show();
    }