Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:如何为BottomSheetDialog创建seprate类_Java_Android_Class_Encapsulation_Numberpicker - Fatal编程技术网

Java Android:如何为BottomSheetDialog创建seprate类

Java Android:如何为BottomSheetDialog创建seprate类,java,android,class,encapsulation,numberpicker,Java,Android,Class,Encapsulation,Numberpicker,我有一个当按钮点击时显示的底部表单对话框,所以我已经将底部表单对话框的所有逻辑实现到按钮的onClick方法中,我怎样才能创建单独的类来显示底部表单对话框,并在onClick中调用方法呢 以下是我在onClick中的代码: BottomSheetDialog mBottomSheetDialog = new BottomSheetDialog(this); View sheetView = getLayoutInflater().inflate(R.layout.bottom_sheet,

我有一个当按钮点击时显示的底部表单对话框,所以我已经将底部表单对话框的所有逻辑实现到按钮的onClick方法中,我怎样才能创建单独的类来显示底部表单对话框,并在onClick中调用方法呢

以下是我在onClick中的代码:

 BottomSheetDialog mBottomSheetDialog = new BottomSheetDialog(this);
 View sheetView = getLayoutInflater().inflate(R.layout.bottom_sheet, null);

 NumberPicker minutePicker = (NumberPicker) sheetView.findViewById(R.id.np);
 tv = (TextView) sheetView.findViewById(R.id.tv);

 minutePicker.setMaxValue(100);
 minutePicker.setMinValue(0);
 minutePicker.setWrapSelectorWheel(false);

 mBottomSheetDialog.setContentView(sheetView);
 mBottomSheetDialog.show();

 minutePicker.setOnValueChangedListener(
            new NumberPicker.OnValueChangeListener() {
            @Override
            public void onValueChange(NumberPicker picker, int oldVal, 
                                             int newVal) {
            tv.setText(Integer.toString(newVal));
        }
    });
}

实现关注点分离并使代码模块化

public class ClsBottomSheet{

public static TextView tv;
LayoutInflater inflater;
BottomSheetDialog mBottomSheetDialog;
public static NumberPicker minutePicker;

public ClsBottomSheet(Context context) {
    mBottomSheetDialog = new BottomSheetDialog(context);
    inflater = LayoutInflater.from(context);
}

public BottomSheetDialog showDialog(){
    View sheetView = inflater.inflate(R.layout.bottom_sheet, null);
    minutePicker = (NumberPicker) sheetView.findViewById(R.id.np);
    tv = (TextView) sheetView.findViewById(R.id.tv);
    Button btnOne = (Button) sheetView.findViewById(R.id.btn_one);
    Button btnTwo = (Button) sheetView.findViewById(R.id.btn_two);

    btnOne.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mBottomSheetDialog.cancel();
        }
    });

    btnTwo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             mBottomSheetDialog.dismiss();
        }
    });

    minutePicker.setMaxValue(100);
    minutePicker.setMinValue(0);
    minutePicker.setWrapSelectorWheel(false);

    mBottomSheetDialog.setContentView(sheetView);
    minutePicker.setOnValueChangedListener(new ClsCallback());

    return mBottomSheetDialog;
}
}