如何在片段中显示带有NumberPicker的alertDialog?

时间:2015-12-22 00:56:26

标签: android android-fragments alertdialog numberpicker

我正在尝试使用在EditText内部用户点击(只需点击一次)时出现的数字选择器获取值。 但我对此有些怀疑:
 1)当用户点击EditText字段时,我应该调用什么方法  2)我如何声明一个AlertDialog(使用Builder)来提示用户何时调用 1)中的方法。

我很欣赏任何想法。感谢。

2 个答案:

答案 0 :(得分:0)

您需要使用数字选择器或您想要的任何UI来定义布局,然后像这样创建对话框:

View view = getActivity().getLayoutInflater().inflate(R.layout.my_layout, null);

new AlertDialog.Builder(getActivity())
    .setView(view)
    .setPositiveButton(android.R.string.ok, null)
    .setTitle("My Dialog")
    .create()
    .show();

my_layout是您的自定义布局。

答案 1 :(得分:0)

创建一个单独的方法,然后在您在EditText中实现的“ OnClickListener”方法中调用它。我做了以下事情:

public void numberPicker(){
    final NumberPicker numberPicker = new NumberPicker(getActivity());
    numberPicker.setMaxValue(360); //Maximum value to select
    numberPicker.setMinValue(0); //Minimum value to select


    final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setView(numberPicker);
    builder.setTitle("Number picker");
    builder.setMessage("Choose a value :");
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(getContext(), "Number selected "+numberPicker.getValue(), Toast.LENGTH_LONG).show();
        }
    });
    builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener(){

        @Override
        public void onClick(DialogInterface dialog, int which) {
            Toast.makeText(getContext(), "You have not selected anything", Toast.LENGTH_LONG).show();
            dialog.dismiss();
        }
    });
    builder.show();
}

您可以使用setText()代替所需的文本,以填充所需的文本字段。