如何将自定义alertdialog中的活动信息传递给edittext

时间:2018-06-06 23:03:17

标签: java android alertdialog

我制作了一个自定义alertdialog,里面有2个Edittexts。我想在点击某些内容时从现有数据库向其传递信息。

这是自定义提醒对话框的类

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        LayoutInflater inflater = getActivity().getLayoutInflater();
        View view = inflater.inflate(R.layout.add_job_dialouge, null);

        builder.setView(view).setTitle("Add Job")

                .setPositiveButton("add", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                        if(isDouble(wageValue.getText().toString())){
                            String nameOjob = jobName.getText().toString();
                            Double valueOwage = Double.parseDouble(wageValue.getText().toString());
                            listener.applyTexts(nameOjob, valueOwage);
                            builder.create();

                        }else{
                            wageValue.setError("Wrong Format Error");
                        }

                    }
                })
                .setNeutralButton("cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                });


        jobName = view.findViewById(R.id.job_name_ETD);
        wageValue = view.findViewById(R.id.wage_ETD);

        //I want to pass information to these

        //jobName.setText();
        //wageValue.setText();

        return builder.create();
    }

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);

        try {
            listener =(ExampleDialogueListener) context;
        } catch (ClassCastException e) {
            throw new ClassCastException(context.toString() + "must implement Example Dialogue Listener");
        }
    }

    public interface ExampleDialogueListener{
        void applyTexts(String jobname, Double wage);
    }

    boolean isDouble(String str) {
        try {
            Double.parseDouble(str);
            return true;
        } catch (NumberFormatException e) {
            return false;
        }
    }

}

我想通过参数将信息传递给edittext,以便在创建alertdialog时有关于编辑文本的信息

1 个答案:

答案 0 :(得分:0)

看起来你正在扩展DialogFragment。

您可以像传统的片段一样传递数据。

Bundle args = new Bundle();
args.putString("arg_key","something");
f.setArguments(args);

其中 f 是DialogFragment的实例。

在DialogFragment中,你可以调用 getArguments()来获取你的包。