Autore Topic: Digital Clock  (Letto 1028 volte)

Offline pegaso993

  • Utente junior
  • **
  • Post: 84
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    note 2
  • Sistema operativo:
    android
Digital Clock
« il: 29 Settembre 2013, 02:41:47 CEST »
0
questo e il mio codice non mi restituisce l'ora nella text tiew ma soltanto la scritta Digital Clock soluzioni


public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
       DigitalClock DigitalClock = (DigitalClock) findViewById(R.id.digitalClock1);
      final TextView tv=(TextView) findViewById(R.id.textView3);
      tv.setText(DigitalClock.getText().toString());
      ciao = (TextView) findViewById(R.id.textView1);
      //what can i do with DigitalClock also? for display only
      if (DigitalClock.getText().toString().equals(ciao)  )


      

Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Digital Clock
« Risposta #1 il: 29 Settembre 2013, 10:59:53 CEST »
+1
Vuoi mostrare nella TextView l'ora? Puoi usare Calendar:

Codice (Java): [Seleziona]
Calendar c = Calendar.getInstance();
int sec = c.get(Calendar.SECOND);
int min = c.get(Calendar.MINUTE);
int ore = c.get(Calendar.HOUR);
tv.setText(ore + ":" + min + ":" + sec );

La classe DigitalClock, per quanto ne so, non possiede metodi che restituiscono l'ora
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline pegaso993

  • Utente junior
  • **
  • Post: 84
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    note 2
  • Sistema operativo:
    android
Re:Digital Clock
« Risposta #2 il: 29 Settembre 2013, 11:11:08 CEST »
0
sai ke volevo fare io

tipo un controllo fra una text view dove io inserisco l orario e l'ora di sistema ogni 4 minuti lui fa il controllo come posso fare ?

Offline vincenzoc

  • Utente junior
  • **
  • Post: 148
  • Respect: +47
    • Google+
    • cerminarav
    • Mostra profilo
    • Mie applicazioni sul Play Store
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Vincenzo Cerminara
  • Sistema operativo:
    Arch Linux
Re:Digital Clock
« Risposta #3 il: 29 Settembre 2013, 11:39:14 CEST »
0
Se fai un esempio ci capiamo meglio :)

Comunque, l'ora di sistema la ottieni come spiegato nella risposta precedente. L'ora nella TextView come è formattata?

Se ad esempio è formattata "HH:mm:ss", questo è un possibile controllo:
Codice (Java): [Seleziona]
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
cal.setTime(sdf.parse(tvConOra.getText().toString));
if( (c.get(Calendar.SECOND)==cal.get(Calendar.SECOND)) && (c.get(Calendar.MINUTE)==cal.get(Calendar.MINUTE)) && (c.get(Calendar.HOUR)==cal.get(Calendar.HOUR)) ){
        //Le ore corrispondono
        //c è il Calendar creato nella risposta precedente
}
Ringrazia chi ti aiuta sul forum con l'apposito pulsante :P
Scarica Yazzy

Offline pegaso993

  • Utente junior
  • **
  • Post: 84
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    note 2
  • Sistema operativo:
    android
Re:Digital Clock
« Risposta #4 il: 29 Settembre 2013, 11:47:19 CEST »
0
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button_label" />
 
    <TextView
        android:id="@+id/txtTime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceLarge" />
 
    <TimePicker
        android:id="@+id/timePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"/>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="00:08" />

    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="CheckBox" />
 
</LinearLayout>
questo e il layout

allora io avvio l app e lui mi controlla l orario se e uguale a quello della text view fa una somma ad esempio oppure se e diverso riesegue il controllo dopo 5 minuti e cosi via fino a quando non è uguale.
capito

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Digital Clock
« Risposta #5 il: 29 Settembre 2013, 11:49:57 CEST »
0
devi solo mostrare l'ora? c'è già il widjet
vuoi eseguire un azione ogni 4 minuti? usa un allarm manager

Offline pegaso993

  • Utente junior
  • **
  • Post: 84
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    note 2
  • Sistema operativo:
    android
Re:Digital Clock
« Risposta #6 il: 29 Settembre 2013, 11:53:21 CEST »
0
io ho 2 text una dove ho il mio orario e una del sistema

allora vorrei che la text di sistema si aggiornasse ogni minuto
mentre il controllo fra le due avvenisse ogni 5 minuti fino a quando non sono uguali
mi avete capito :) ?

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Digital Clock
« Risposta #7 il: 29 Settembre 2013, 11:57:12 CEST »
0
si ma scusa...
ma forse un approccio diverso potrebbe essere più efficace:
textview 1
setti l'ora di tuo interesse, alla pressione di un tasto avvii un allarm manager, che in quella determinata ora fa l'azione che ti interessa.
in questo modo non sovraccarichi la ram e la batteria, e non devi fare cicli e simili.
in un paio di righe di codice, risolvi tutto

Offline pegaso993

  • Utente junior
  • **
  • Post: 84
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    note 2
  • Sistema operativo:
    android
Re:Digital Clock
« Risposta #8 il: 29 Settembre 2013, 12:50:28 CEST »
0
quindi faccio l allarme e il controllo come lo faccio ?

Post unito: 29 Settembre 2013, 13:34:57 CEST
il problema mio è nel leggere l'orario è dirgli usa l allarmmanger
cioe if textview1 = orario di sitema allora
invia notifica
« Ultima modifica: 29 Settembre 2013, 13:34:57 CEST da pegaso993, Reason: Merged DoublePost »

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Digital Clock
« Risposta #9 il: 29 Settembre 2013, 15:13:33 CEST »
0
già se devi mandare na notifica il discorso è diverso.
cerco di spiegarlo in modo più semplice
nell'edit text (perchè non un time picker) setti un orario
ad esempio hh:mm:ss
del tipo 12:34:56
ipotizziamo sempre del giorno corrente
dopo di che, setti un allarm manager che si avvia a quell'orario
l'allarm manager avrà un pending intent da avviare, in questo intent fai tutto quello che ti serve

Offline pegaso993

  • Utente junior
  • **
  • Post: 84
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    note 2
  • Sistema operativo:
    android
Re:Digital Clock
« Risposta #10 il: 29 Settembre 2013, 15:24:26 CEST »
0
                hour =  15 ;
      minute = 2;
      textViewTime.setText(new StringBuilder().append(padding_str(hour)).append(":").append(padding_str(minute)));

SETTATO IL MIO ORARIO ORA IL MANGERALLARM COME GLI DICO CHE SE L ORARIO CORRENTE E UGUALE A textViewTime ATTIVATI E MANDA L ALLARME O NOTIFICA CHE SIA ?

Post unito: 29 Settembre 2013, 17:15:28 CEST
sono riuscito a fare questo
public void onClickSetAlarm(View v)
   {
      
      alarmManager.set( AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000 , pendingIntent );
   }
   private void RegisterAlarmBroadcast()
   {
        Log.i("Alarm Example:RegisterAlarmBroadcast()", "Going to register Intent.RegisterAlramBroadcast");
      
      //This is the call back function(BroadcastReceiver) which will be call when your
      //alarm time will reached.
      mReceiver = new BroadcastReceiver()
      {
         private static final String TAG = "Alarm Example Receiver";
          @Override
          public void onReceive(Context context, Intent intent)
          {
            Log.i(TAG,"BroadcastReceiver::OnReceive() >>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
            Toast.makeText(context, "ciao", Toast.LENGTH_LONG).show();
          }
      };

cioe ogni volta che clicco il tasto dopo 10 secondi mi spunta ciao e fino a qua ci siamo
ora questo lo vorrei far fare ogni lunedi alle 12 come faccio :D

Post unito: 29 Settembre 2013, 18:54:31 CEST
oppure potrebbe andare questo ???
public void onClickSetAlarm(View v)
   {
        Calendar calNow = Calendar.getInstance();
          Calendar calSet = Calendar.getInstance();
          calSet.set(Calendar.DAY_OF_WEEK, 8); //venerdì
          calSet.set(Calendar.HOUR_OF_DAY, 4);
          calSet.set(Calendar.MINUTE, 54);
          calSet.set(Calendar.SECOND, 0);
          calSet.set(Calendar.MILLISECOND, 0);
      alarmManager.setRepeating( AlarmManager.RTC_WAKEUP,calSet.getTimeInMillis(), AlarmManager.INTERVAL_DAY*7, pendingIntent );
   }
   private void RegisterAlarmBroadcast()
   {
        Log.i("Alarm Example:RegisterAlarmBroadcast()", "Going to register Intent.RegisterAlramBroadcast");
      
      //This is the call back function(BroadcastReceiver) which will be call when your
      //alarm time will reached.
      mReceiver = new BroadcastReceiver()
      {
         private static final String TAG = "Alarm Example Receiver";
          @Override
          public void onReceive(Context context, Intent intent)
          {
            Log.i(TAG,"BroadcastReceiver::OnReceive() >>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
            Toast.makeText(context, "Congrats!. Your Alarm time has been reached", Toast.LENGTH_LONG).show();
          }
      };
« Ultima modifica: 29 Settembre 2013, 18:54:31 CEST da pegaso993, Reason: Merged DoublePost »