Android 安卓、时间选择器和他在不被调用时的价值
我的时间选择器工作得很好,但只有一次它输出错误。若我调用编辑函数,所有变量都是从数据库中填充的,并且我并没有调用时间选择器(用这个函数单击按钮),它会用实际的系统值重写我的db值。我怎样才能修好它?当我用picker点击按钮后,他们会显示我的db值,startactivity的textview会显示db值,但保存后,只有当我点击picker按钮时才会保存db值(打电话给他)。。。我如何设置值,然后我不能点击它,并且值保持在db之外Android 安卓、时间选择器和他在不被调用时的价值,android,datetime,set,picker,Android,Datetime,Set,Picker,我的时间选择器工作得很好,但只有一次它输出错误。若我调用编辑函数,所有变量都是从数据库中填充的,并且我并没有调用时间选择器(用这个函数单击按钮),它会用实际的系统值重写我的db值。我怎样才能修好它?当我用picker点击按钮后,他们会显示我的db值,startactivity的textview会显示db值,但保存后,只有当我点击picker按钮时才会保存db值(打电话给他)。。。我如何设置值,然后我不能点击它,并且值保持在db之外 public class PredmetPridajActivi
public class PredmetPridajActivity extends Activity implements OnItemSelectedListener
{
//DateFormat fmtTime = DateFormat.getTimeInstance();
SimpleDateFormat fmtTime = new SimpleDateFormat("kk:mm");
SimpleDateFormat fmtDate2 = new SimpleDateFormat("yyyy-MM-dd kk:mm"); // upravit na den alebo v selecte lepsi order
TextView timeLabel;
Calendar time = Calendar.getInstance ();
public static final String ODOSLI = "odosli";
private DatabaseOp mDbHelper;
String username;
String odosli = "";
String predmet;
String obsah;
String poloha;
String vyucujuci;
String hodina;
String den;
int item;
String strItem;
EditText tv_nazov;
EditText tv_poznamka;
EditText tv_miesto;
EditText tv_vyucujuci;
private Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.predmet_pridaj);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
spinner = (Spinner)findViewById(R.id.spinner_dni);
ArrayAdapter<?> adapter = ArrayAdapter.createFromResource(this, R.array.dni, android.R.layout.simple_spinner_dropdown_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
mDbHelper = new DatabaseOp(this);
mDbHelper.open();
timeLabel = (TextView)findViewById(R.id.time);
updateLabel();
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
username = sharedPrefs.getString("prefUsername", "NULL");
Intent i = getIntent();
if (i.hasExtra(ODOSLI))
odosli = i.getStringExtra(ODOSLI);
if (odosli.length()>0)
{
dbOperations();
tv_nazov = (EditText)findViewById(R.id.predmet);
tv_nazov.setText(predmet);
tv_poznamka = (EditText)findViewById(R.id.obsah);
tv_poznamka.setText(obsah);
tv_miesto = (EditText)findViewById(R.id.miesto);
tv_miesto.setText(poloha);
tv_vyucujuci = (EditText)findViewById(R.id.vyucujuci);
tv_vyucujuci.setText(vyucujuci);
timeLabel.setText(hodina);
spinner.setSelection(Integer.parseInt(den));
}
}
public void onItemSelected (AdapterView<?> parent, View view, int position, long id)
{
strItem = parent.getItemAtPosition (position).toString();
item = parent.getSelectedItemPosition();
}
public void onNothingSelected (AdapterView <?> parent)
{
}
protected void onPause(Bundle savedInstanceState)
{
mDbHelper.close();
}
public void buttonClicked_uloz(View button)
{
getData();
if (predmet.length()<1)
{
Toast.makeText(this, R.string.invalid_nazov, Toast.LENGTH_SHORT).show();
} else {
if (odosli.length()>0)
{
mDbHelper.updatePredmet(odosli, predmet, poloha, vyucujuci, hodina, obsah, item);
} else {
mDbHelper.createPredmet(username, predmet, obsah, poloha, vyucujuci, hodina, 1, item);
}
startActivity ();
}
}
public void dbOperations ()
{
mDbHelper = new DatabaseOp(this);
mDbHelper.open();
Cursor cursor = mDbHelper.fetchPredmet(odosli, 1);
startManagingCursor(cursor);
predmet = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseOp.KEY_NAZOV));
obsah = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseOp.KEY_POZNAMKA));
poloha = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseOp.KEY_POLOHA));
vyucujuci = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseOp.KEY_VYUCUJUCI));
hodina = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseOp.KEY_HODINA));
den = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseOp.KEY_DLZKA));
}
public void getData ()
{
EditText predmetInput = ((EditText)findViewById(R.id.predmet));
predmet = predmetInput.getText().toString();
EditText obsahInput = ((EditText)findViewById(R.id.obsah));
obsah = obsahInput.getText().toString();
EditText polohaInput = ((EditText)findViewById(R.id.miesto));
poloha = polohaInput.getText().toString();
EditText vyucujuciInput = ((EditText)findViewById(R.id.vyucujuci));
vyucujuci = vyucujuciInput.getText().toString();
hodina = fmtTime.format(time.getTime());
}
public void chooseTime (View v)
{
if (odosli.length()>0)
{
new TimePickerDialog (PredmetPridajActivity.this, t, Integer.parseInt(hodina.substring(0,2)), Integer.parseInt(hodina.substring(3,5)),true).show();
} else {
new TimePickerDialog (PredmetPridajActivity.this, t, time.get(Calendar.HOUR_OF_DAY),time.get(Calendar.MINUTE),true).show();
}
}
public void updateLabel()
{
timeLabel.setText(fmtTime.format(time.getTime()));
}
TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener()
{
public void onTimeSet (TimePicker view, int hourOfDay, int minute)
{
time.set(Calendar.HOUR_OF_DAY, hourOfDay);
time.set(Calendar.MINUTE, minute);
updateLabel();
}
};
public void startActivity ()
{
PredmetPridajActivity.this.finish();
}
}
public类PredmetPridajActivity扩展活动实现了MSelectedListener
{
//DateFormat fmtTime=DateFormat.getTimeInstance();
SimpleDataFormat fmtTime=新的SimpleDataFormat(“kk:mm”);
SimpleDateFormat fmtDate2=新的SimpleDateFormat(“yyyy-MM-dd-kk:MM”);//按顺序升级
文本视图时间标签;
日历时间=Calendar.getInstance();
公共静态最终字符串ODOSLI=“ODOSLI”;
私有数据库;
字符串用户名;
字符串odosli=“”;
字符串预匹配;
弦obsah;
弦波洛哈;
字符串vyucujuci;
弦霍迪纳;
弦窝;
国际项目;
弦纹;
EditText tv_nazov;
EditText tv_poznamka;
编辑文本电视;
EditText tv_vyucujuci;
私人纺纱机;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.predmet_pridaj);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u输入\状态\始终\隐藏);
微调器=(微调器)findViewById(R.id.spinner\u dni);
ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.dni,android.R.layout.simple\u微调器\u下拉菜单\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
spinner.setOnItemSelectedListener(此);
mDbHelper=新数据库操作(此);
mDbHelper.open();
timeLabel=(TextView)findViewById(R.id.time);
updateLabel();
SharedPreferences SharedPrefers=PreferenceManager.getDefaultSharedPreferences(此);
username=sharedPrefs.getString(“prefUsername”、“NULL”);
Intent i=getIntent();
如果(i.hasExtra(奥多斯利))
odosli=i.getStringExtra(odosli);
如果(odosli.length()>0)
{
dbOperations();
tv_nazov=(编辑文本)findViewById(R.id.predmet);
tv_nazov.setText(predmet);
tv_poznamka=(编辑文本)findViewById(R.id.obsah);
tv_poznamka.setText(obsah);
tv_miesto=(编辑文本)findviewbyd(R.id.miesto);
tv_miesto.setText(poloha);
tv_vyucujuci=(编辑文本)findViewById(R.id.vyucujuci);
tv_vyucujuci.setText(vyucujuci);
timeLabel.setText(霍迪纳);
spinner.setSelection(Integer.parseInt(den));
}
}
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id)
{
strItem=parent.getItemAtPosition(position).toString();
item=parent.getSelectedItemPosition();
}
未选择公共无效(AdapterView父级)
{
}
暂停时受保护的void(Bundle savedInstanceState)
{
mDbHelper.close();
}
公共无效按钮单击(查看按钮)
{
getData();
if(predmet.length()0)
{
mDbHelper.UpdatePreMet(奥多斯利、普雷米特、波洛哈、维尤库朱奇、霍迪纳、奥巴、物品);
}否则{
createPredmet(用户名,predmet,obsah,poloha,vyucujuci,hodina,1,item);
}
星触觉();
}
}
公共操作()
{
mDbHelper=新数据库操作(此);
mDbHelper.open();
Cursor Cursor=mDbHelper.fetchPreMet(odosli,1);
开始管理游标(游标);
predmet=cursor.getString(cursor.getColumnIndexOrThrow(DatabaseOp.KEY_NAZOV));
obsah=cursor.getString(cursor.getColumnIndexOrThrow(DatabaseOp.KEY_POZNAMKA));
poloha=cursor.getString(cursor.getColumnIndexOrThrow(DatabaseOp.KEY_poloha));
vyucujuci=cursor.getString(cursor.getColumnIndexOrThrow(DatabaseOp.KEY_vyucujuci));
hodina=cursor.getString(cursor.getColumnIndexOrThrow(DatabaseOp.KEY_hodina));
den=cursor.getString(cursor.getColumnIndexOrThrow(DatabaseOp.KEY_DLZKA));
}
public void getData()
{
EditText predmetInput=((EditText)findViewById(R.id.predmet));
predmet=predmetInput.getText().toString();
EditText obsahInput=((EditText)findViewById(R.id.obsah));
obsah=obsahInput.getText().toString();
EditText polohaInput=((EditText)findViewById(R.id.miesto));
poloha=polohaInput.getText().toString();
EditText vyucujuciInput=((EditText)findViewById(R.id.vyucujuci));
vyucujuci=vyucujuciInput.getText().toString();
hodina=fmtTime.format(time.getTime());
}
public void chooseTime(视图五)
{
如果(odosli.length()>0)
{
新的TimePickerDialog(PredmetPridajActivity.this,t,Integer.parseInt(hodina.substring(0,2)),Integer.parseInt(hodina.substring(3,5)),true.show();
}否则{
new TimePickerDialog(PredmetPridajActivity.this,t,time.get(Calendar.HOUR\u OF u DAY),time.get(Calendar.MINUTE),true.show();
}
}
公共void updateLabel()
{
timeLabel.setText(fmtTime.format(time.getTime());
}
TimePickerDialog.OnTimeSetListener t=新的TimePickerDialog.OnTimeSetListener()
{
时间集上的公共void(时间选择器视图,整数小时日,整数分钟)
{
时间.设置(日历.小时/天,小时/天);
时间。设置(日历。分钟,分钟);
updateLabel();
}
};
公共空间触感()
{
PredmetPridajActivity.this.finish();
}
}
尝试此操作,但此操作会像默认设置一样设置当前时间
SimpleDateFormat sdf = new SimpleDateFormat("hh:ss");
Date date = null;
try {
date = sdf.parse("07:00");
} catch (ParseException e) {
}
Calendar c = Calendar.getInstance();
c.setTime(date);
TimePicker picker = new TimePicker(getApplicationContext());
picker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY));//your default hour
picker.setCurrentMinute(c.get(Calendar.MINUTE));// your default minute
是否要将默认值设置为timerPicker?我不理解这个问题是的,我需要设置默认值下面查看我的答案如果对你有帮助,请检查下面的答案