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