안드로이드 개발 질문/답변
(글 수 45,052)
public class PowerTool extends Activity implements OnClickListener{
private TextView mTimeDisplay;
private DBAdapter mDbHelper;
private int mRowId;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mDbHelper = new DBAdapter(this);
mDbHelper.open();
mRowId = -1;
int hour = 03;
int minute = 20;
Cursor timesCursor = mDbHelper.fetchAllTimes();
//startManagingCursor(timesCursor);
if (timesCursor.getCount() != 0){
timesCursor.moveToFirst();
mRowId = timesCursor.getInt( timesCursor.getColumnIndexOrThrow(DBAdapter.KEY_ROWID));
hour = timesCursor.getInt( timesCursor.getColumnIndexOrThrow(DBAdapter.KEY_HOUR));
minute = timesCursor.getInt( timesCursor.getColumnIndexOrThrow(DBAdapter.KEY_MINUTE));
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
Shutdown st = new Shutdown(this,am);
st.SetPoweroffSchedule(hour,minute);
}
mTimeDisplay = (TextView) findViewById(R.id.TextView);
TimePicker timePicker = (TimePicker) findViewById(R.id.TimePicker);
timePicker.setIs24HourView(true);
timePicker.setCurrentHour(hour);
timePicker.setCurrentMinute(minute);
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
updateDisplay(hourOfDay, minute);
}
});
Button btnOK = (Button) findViewById(R.id.btnOK);
btnOK.setOnClickListener(mSetSchedule);
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(timePicker.getWindowToken(), 0);
}
private OnClickListener mSetSchedule = new OnClickListener() {
public void onClick(View v) {
TimePicker timePicker = (TimePicker) findViewById(R.id.TimePicker);
InputMethodManager in = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(timePicker.getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
int hour = timePicker.getCurrentHour();
int minute = timePicker.getCurrentMinute();
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
Shutdown st = new Shutdown(PowerTool.this,am);
st.SetPoweroffSchedule(hour,minute);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
if(mRowId == -1){
mDbHelper.createTime(hour, minute);
}else {
mDbHelper.updateTime(mRowId, hour, minute);
}
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(timePicker.getWindowToken(), 0);
finish();
}
};
private void updateDisplay(int hourOfDay, int minute) {
mTimeDisplay.setText(
new StringBuilder()
.append(pad(hourOfDay)).append(":")
.append(pad(minute)));
}
private static String pad(int c) {
if (c >= 10)
return String.valueOf(c);
else
return "0" + String.valueOf(c);
} 이렇게 해놓으니 timepicker에 +, -로 누른값만 저장하고 숫자찍어서 뜨는 키보드로 적은거는 저장이 안되네요...
저장하는 방법좀 알려주시거나 아니면 숫자 눌러도 키보드 안나오게 하는방법좀 알려주세요...ㅠㅜ
진지한 답변 부탁드립니다. 꾸벅!



