Autore Topic: Prendendo dati dal TimePicker e il DatePicker  (Letto 1087 volte)

Offline theKuston

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Play Store ID:
    K-soft
  • Sistema operativo:
    windows 8.1, Ubuntu 14
Prendendo dati dal TimePicker e il DatePicker
« il: 04 Settembre 2014, 12:44:45 CEST »
0
weeee
allora io sto creando un'app sveglia...
Ho create¡o un custom dialog con un TimePicker e un DatePicker:
Codice (XML): [Seleziona]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical" android:layout_width="match_parent"
   android:layout_height="match_parent"
   >

    <DatePicker
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/datePicker"
       android:layout_gravity="center_horizontal" />

    <TimePicker
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/timePicker"
       android:layout_gravity="center_horizontal"/>



</LinearLayout>
Ora nell'activity voglio prendere i dati del timePicker e del DatePicker per farne una sveglia... Ma non riesco...
Activity:
Codice (Java): [Seleziona]
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_alarms);
        ListView alarmsList = (ListView) findViewById(R.id.listView);
        ImageView newAlarm = (ImageView) findViewById(R.id.imageView);
        getActionBar().hide();
        newAlarm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                createDialog();
            }
        });
    }
    private void createDialog(){
        final TimePicker tp = (TimePicker) findViewById(R.id.timePicker);
        final DatePicker dp = (DatePicker) findViewById(R.id.datePicker);
        Calendar calendar = Calendar.getInstance();
        final AlertDialog.Builder customDialog = new AlertDialog.Builder(this);
        View customView = getLayoutInflater().inflate(R.layout.custom_dialog,null);
        customDialog.setPositiveButton("ok",new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            //qui devo prendere i dati dei picker in forma di Calendar per fare il setAlarm();
            int year = dp.getYear();
            }
           
        });
        customDialog.setView(customView);
        customDialog.show();
        /*TimePickerDialog timePickerDialog = new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                Calendar calNow = Calendar.getInstance();
                Calendar calSet = (Calendar) calNow.clone();
                calSet.set(Calendar.HOUR_OF_DAY,hourOfDay);
                calSet.set(Calendar.MINUTE,minute);
                calSet.set(Calendar.SECOND,0);
                calSet.set(Calendar.MILLISECOND,0);
                if(calSet.compareTo(calNow) <=0){
                    calSet.add(Calendar.DATE, 1);
                }
                setAlarm(calSet);
            }
        },calendar.get(Calendar.HOUR_OF_DAY),calendar.get(Calendar.MINUTE),is24r);
        timePickerDialog.setTitle("select the time");
        timePickerDialog.show();*/

    }
    private void setAlarm(Calendar targetCal){
        Toast.makeText(getApplicationContext(), "alarm setted", Toast.LENGTH_SHORT).show();
        Intent intent = new Intent(getBaseContext(), BroadcastReceiver.class);
        PendingIntent pendingIntent =  PendingIntent.getBroadcast(getBaseContext(),1,intent,0);
        AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP,targetCal.getTimeInMillis(),pendingIntent);
    }
Grazie a tutti!!!!!
« Ultima modifica: 04 Settembre 2014, 13:46:47 CEST da theKuston »
Tutte le mie applicazioni sul play store:
https://play.google.com/store/apps/developer?id=K-soft

Offline tonno16

  • Utente storico
  • *****
  • Post: 1184
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Prendendo dati dal TimePicker e il DatePicker
« Risposta #1 il: 04 Settembre 2014, 13:16:34 CEST »
0
Spiega qual è il problema. Posta un log se serve

Offline theKuston

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Play Store ID:
    K-soft
  • Sistema operativo:
    windows 8.1, Ubuntu 14
Re:Prendendo dati dal TimePicker e il DatePicker
« Risposta #2 il: 04 Settembre 2014, 13:45:14 CEST »
0
Il problema: Non so come farlo.. su internet ha trovato che devo fare(x esempio)
Codice (Java): [Seleziona]
int year = dp.getYear();e mi dice il LogCat :
Codice: [Seleziona]
Process: k.soft.com.aida, PID: 7348
    java.lang.NullPointerException: Attempt to invoke virtual method 'int android.widget.DatePicker.getYear()' on a null object reference
            at k.soft.com.aida.AlarmsActivity$2.onClick(AlarmsActivity.java:48)
            at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
Tutte le mie applicazioni sul play store:
https://play.google.com/store/apps/developer?id=K-soft

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Prendendo dati dal TimePicker e il DatePicker
« Risposta #3 il: 04 Settembre 2014, 16:54:19 CEST »
0
Non ho capito se l'xml che hai postato contenente i DatePicker è il file activity_alarms.xml o custom_dialog.xml

Ti faccio notare che il findViewById per recuperare il dp viene eseguito nell'activity principale e quindi lo sta cercando nella activity_alarms.

Offline theKuston

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Play Store ID:
    K-soft
  • Sistema operativo:
    windows 8.1, Ubuntu 14
Re:Prendendo dati dal TimePicker e il DatePicker
« Risposta #4 il: 04 Settembre 2014, 17:12:49 CEST »
0
Sarebbe il custom_dialog...
Ti faccio notare che il findViewById per recuperare il dp viene eseguito nell'activity principale e quindi lo sta cercando nella activity_alarms.
e quindi come devo fare?
perche il curstom_dialog non ha un'activity...

Post unito: 04 Settembre 2014, 17:23:20 CEST
Avevi ragione... ho risolto... invece di fare findViewById ho fatto customView.findViewById....
Grazie!!
« Ultima modifica: 04 Settembre 2014, 17:23:20 CEST da theKuston, Reason: Merged DoublePost »
Tutte le mie applicazioni sul play store:
https://play.google.com/store/apps/developer?id=K-soft