2016-01-14 4 views
3

Как вы создаете Android-приложение без отмены? Я ожидал, что setCancelable (false) сделает это, но не избавится от кнопки, это только предотвращает нажатие на кнопку отмены за окном или кнопкой возврата.Timepicker без кнопки отмены?

+1

'TimePicker' не имеет кнопки отмены. 'TimePickerDialog' имеет кнопку отмены. Если вы не хотите кнопку отмены, используйте виджет 'TimePicker' в своем собственном интерфейсе. – CommonsWare

ответ

3

Если вы хотите использовать TimePickerDialog, это довольно просто. Вы просто должны определить, когда будет показан диалог, искать кнопку ОТРИЦАТЕЛЬНУЮ так, что служит «Отменить» один и установить его видимость GONE..like это:

final TimePickerDialog timePicker = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { 
    @Override 
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
     // Do something with the time 
    } 
}, 12, 25, true); // 12 is the hour and 25 is minutes..please change this 

timePicker.setOnShowListener(new DialogInterface.OnShowListener() { 
    @Override 
    public void onShow(DialogInterface dialog) { 
     // This is hiding the "Cancel" button: 
     timePicker.getButton(Dialog.BUTTON_NEGATIVE).setVisibility(View.GONE); 
    } 
}); 
timePicker.show(); 
0

Если вы не хотите отменить кнопка для выбора времени, лучше использовать время сборщика в файле XML, как:

<TimePicker 
    android:id="@+id/timePicker1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

и ваша деятельность должна быть как:

import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.widget.TextView; 
import android.widget.TimePicker; 

public class MainActivity extends Activity { 
    private TimePicker timePicker1; 
    private TextView time; 
    private Calendar calendar; 
    private String format = ""; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     timePicker1 = (TimePicker) findViewById(R.id.timePicker1); 
     time = (TextView) findViewById(R.id.textView1); 
     calendar = Calendar.getInstance(); 

     int hour = calendar.get(Calendar.HOUR_OF_DAY); 
     int min = calendar.get(Calendar.MINUTE); 
     showTime(hour, min); 
    } 

    public void setTime(View view) { 
    int hour = timePicker1.getCurrentHour(); 
    int min = timePicker1.getCurrentMinute(); 
    showTime(hour, min); 
    } 

    public void showTime(int hour, int min) { 
    if (hour == 0) { 
     hour += 12; 
     format = "AM"; 
    } 
    else if (hour == 12) { 
     format = "PM"; 
    } else if (hour > 12) { 
     hour -= 12; 
     format = "PM"; 
    } else { 
     format = "AM"; 
    } 
    time.setText(new StringBuilder().append(hour).append(" :  ").append(min) 
    .append(" ").append(format)); 
    } 


} 

это для справки, надеюсь, что это поможет .. Спасибо :)