This code is work for me. Set Onclicklistner to the button and check edit text is empty or not using if statement. if edit text empty, call BirthDayPick() method. I use this for date pick. In your case replace BirthDayPick() method in to your time picker method.
public class RegisterActivity extends AppCompatActivity {
int defaultBirthYear=1990, defaultBirthMonth=0, defaultBirthDay=01;
int BirthYear, BirthMonth, BirthDay;
EditText etDOB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
etDOB = (EditText) findViewById(R.id.etDOB);
etDOB.setFocusable(false);
etDOB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
BirthDayPick();
}
});
final Button btnRegister = (Button) findViewById(R.id.bRegister);
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (etDOB.getText().toString().length() < 1) {
Toast.makeText(this, "Date of Birth cannot be empty", Toast.LENGTH_LONG).show();
BirthDayPick();
}
else{ Register(); // your registration method.
}
}
});
}
public void BirthDayPick(){
DatePickerDialog dpd = new DatePickerDialog(RegisterActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int monthOfYear, int dayOfMonth) {
BirthYear = defaultBirthYear = year;
BirthMonth = defaultBirthMonth = monthOfYear;
BirthDay = defaultBirthDay = dayOfMonth;
DecimalFormat df = new DecimalFormat("00");
final EditText etDOB = (EditText) findViewById(R.id.etDOB);
etDOB.setText(year+"-"+df.format(monthOfYear+1)+"-"+df.format(dayOfMonth));
}
},defaultBirthYear,defaultBirthMonth,defaultBirthDay);
dpd.show();
}
}