Per far questo devo bindare l'attività TimeSettings al TimerService.
public class TimeSettings extends Activity { SeekBar seekBarMin, seekBarMax; TextView textViewMin,textViewMax; SharedPreferences SP; TimerService mService; boolean mBound; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_time_settings); SP=getApplicationContext().getSharedPreferences("settings", Context.MODE_PRIVATE); seekBarMin=(SeekBar)findViewById(R.id.seekBar1); seekBarMin.setMax(240); seekBarMax=(SeekBar)findViewById(R.id.seekBar2); seekBarMax.setMax(240); int intervalloMin=SP.getInt("intervalloMin", 0); int intervalloMax=SP.getInt("intervalloMax", 0); seekBarMin.setProgress(intervalloMin); seekBarMax.setProgress(intervalloMax); textViewMin=(TextView)findViewById(R.id.textView1); setTextViewFromSeekBar(intervalloMin,textViewMin); textViewMax=(TextView)findViewById(R.id.textView2); setTextViewFromSeekBar(intervalloMax,textViewMax); seekBarMin.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) { SharedPreferences.Editor editor=SP.edit(); editor.putInt("intervalloMin", seekBar.getProgress()); editor.commit(); } @Override public void onStartTrackingTouch(SeekBar seekBar) { mService.StopTime(); } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { setTextViewFromSeekBar(progress,textViewMin); if(progress>seekBarMax.getProgress())seekBarMax.setProgress(progress); } }); seekBarMax.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) { SharedPreferences.Editor editor=SP.edit(); editor.putInt("intervalloMax", seekBar.getProgress()); editor.commit(); } @Override public void onStartTrackingTouch(SeekBar seekBar) { mService.StopTime(); } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { setTextViewFromSeekBar(progress,textViewMax); if(progress<seekBarMin.getProgress())seekBarMin.setProgress(progress); } }); } private void setTextViewFromSeekBar(int numero,TextView textView){ TextView t=textView; int intero=10*(numero/10); int ore=intero/60; int minuti=intero%60; String stringaDelleOre; String stringaDeiMinuti; String stringaEt=""; if(ore==0){ stringaDelleOre=""; } else if(ore==1){ stringaDelleOre=ore+" ORA "; } else{ stringaDelleOre=ore+" ORE "; } if(minuti==0){ stringaDeiMinuti=""; } else if(minuti==1){ stringaDeiMinuti=minuti+" MINUTO "; } else{ stringaDeiMinuti=minuti+" MINUTI "; } if(ore!=0 && minuti!=0) stringaEt=" E "; if(ore==0 && minuti==0) { stringaDelleOre=ore+" ORE"; stringaEt= " E "; stringaDeiMinuti=minuti+" MINUTI"; } t.setText(stringaDelleOre+stringaEt+stringaDeiMinuti); } @Override public void onStart(){ super.onStart(); Intent intent=new Intent(this,TimerService.class); bindService(intent,mConnection,Service.BIND_AUTO_CREATE); } @Override public void onStop(){ super.onStop(); if(mBound==true){ unbindService(mConnection); mBound=false; } } ServiceConnection mConnection=new ServiceConnection(){ @Override public void onServiceConnected(ComponentName name, IBinder service) { LocalBinder bnd=(LocalBinder)service; mService=bnd.getService(); mBound=true; } @Override public void onServiceDisconnected(ComponentName name) { mBound=false; } }; }Proviamolo...
Funziona! Riuscito al primo colpo!
Nessun commento:
Posta un commento