我正在尝试使用在EditText内部用户点击(只需点击一次)时出现的数字选择器获取值。
但我对此有些怀疑:
1)当用户点击EditText字段时,我应该调用什么方法
2)我如何声明一个AlertDialog(使用Builder)来提示用户何时调用 1)中的方法。
我很欣赏任何想法。感谢。
答案 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()代替所需的文本,以填充所需的文本字段。