与自定义适配器的警报对话

时间:2018-04-09 12:25:07

标签: android android-arrayadapter alertdialog

我与其中的微调器进行了警报对话。微调器的默认值是“添加新用户”。当选择特定的一个时,我显示另一个没有关闭警报的弹出窗口,其中可以输入新的用户详细信息并将其存储到我的DB中。我想在第一个警报中使用从db输入的新用户值更新我的微调器

我的代码微调器选择方法是

spnr.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

                @Override
                public void onItemSelected(AdapterView<?> arg0, View arg1, int position,long id) {
                    model_list = planList_list.get(position);
                    if (model_list.getDevice().trim().equalsIgnoreCase("Add New User")){

                        User();
                        adapter_usr.notifyDataSetChanged();
                    }
                }

                @Override
                public void onNothingSelected(AdapterView<?> arg0) {
                    model_list = planList_list.get(0);
                }

            });

添加新用户的方法

public void User(){

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    final AlertDialog dialog = builder.create();
    dialog.setCancelable(false);
    LayoutInflater inflater = (LayoutInflater) this.getSystemService(this.LAYOUT_INFLATER_SERVICE);
    View dialogLayout = inflater.inflate(R.layout.mybank, null);
    final EditText add1 = (EditText)dialogLayout.findViewById(R.id.shop1);
    final EditText add2 = (EditText)dialogLayout.findViewById(R.id.shop2);
    final EditText add3 = (EditText)dialogLayout.findViewById(R.id.shop3);

    Button ok = (Button)dialogLayout.findViewById(R.id.later );
    Button close = (Button)dialogLayout.findViewById(R.id.close);
    close.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {

            dialog.dismiss();
        }
    });
    ok.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {

                String addr1 = add1.getText().toString().trim();
                String addr2 = add2.getText().toString().trim();
                String addr3 = add3.getText().toString().trim();

                db.insertUser(addr1,addr2,addr3);
                adapter_usr.notifyDataSetChanged();
                dialog.dismiss();
        }
    });

    dialog.setView(dialogLayout,0,0,0,0);
    dialog.show();

}

我想用第二个警报对话框中的值更新第一个警报对话框中的微调器数据。 感谢您的回复

1 个答案:

答案 0 :(得分:2)

将用户数据插入表后,在调用notifyDataSetChanged()之前将用户数据添加到 planList_list

ok.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {

            String addr1 = add1.getText().toString().trim();
            String addr2 = add2.getText().toString().trim();
            String addr3 = add3.getText().toString().trim();

            db.insertUser(addr1,addr2,addr3);
            planList_list.add(/*Add user data*/);
            adapter_usr.notifyDataSetChanged();
            dialog.dismiss();
    }
});

希望这能解决您的问题。快乐的编码。