2017-06-13 4 views
0

Ich habe Bottom-Blatt-Dialog, der beim Klicken auf die Schaltfläche angezeigt, so habe ich die Logik für Bottom-Blatt-Dialog in OnClick-Methode der Schaltfläche implementiert, wie kann ich separate Klasse für die Darstellung der unteren Blatt Dialog und rufen Sie einfach Methode in onClickAndroid: Wie seprate Klasse für BottomSheetDialog

ist hier mein Code in 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)); 
     } 
    }); 
} 

Antwort

0

Um die Trennung von Anliegen umzusetzen und Ihren Code modular

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; 
} 
} 
machen
Verwandte Themen