Java

Mattepuffo's logo
Canvas con altezza e larghezza al 100%

Canvas con altezza e larghezza al 100%

L'elemento <canvas> di HTML5 è un elemento un pò particolare perchè nasce con lo scopo di crearci animazioni dentro.

In generale, quindi, deve avere un'altezza e una larghezza precise.

In alcuni casi potrebbe essere necessario fare in modo che sia automaticamente all 100% rispetto all'elemento in cui si trova.

Abbiamo due possibilità.

Mattepuffo's logo
Leggere file in Android

Leggere file in Android

La gestione dei file in Android è più semplice di quello che si pensi.

Nel mio caso ho una app che usa dei file JSON per avere sempre i dati offline; file scaricati da un server remoto.

Sono in formato JSON per riempire una ListView, ma il concetto va bene per qualsiasi tipo di file.

I miei file sono salvati nell'external storage, quindi prima di tutto impostiamo i permessi nel manifest:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Poi nell'Activity impostiamo il path verso lo storage (mi raccomando, metterlo nell'activity):

private String path = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator;

Questo rappresenta la external storage directory, al quale dobbiamo aggiungere poi il file che ci interessa.

Mattepuffo's logo
Geolocalizzazione con Javascript

Geolocalizzazione con Javascript

Tra i nuovi oggetti diposnibili nelle API Javascript di HTML 5 troviamo anche ciò che riguarda la Geolocalizzazione.

In pratica, senza usare strumenti esterni come Google Maps, siamo in grado di identificare le coordinate del browser.

Ovviamente non tutti i browser supportano questa funzionalità, quindi nel caso dovete fare affidamento ad altri strumenti.

Qui trovate una buona guida, e sotto una funzioncina per fare quello ci serve; tenete in considerazione anche che la Geolocalizzazione richiede il permesso da parte degli utenti (in verità dipende dal browser, ma tutti ad oggi richiedono il permesso all'utente).

Mattepuffo's logo
Android DatePicker

Android DatePicker

I DatePicker sono dei componenti molto comodi per rappresentare le date, e li possiamo ormai trovare su qualsiasi software Web, Desktop o Mobile che sia.

Oggi vediamo come usare questo componente in Android.

Prima di tutto aggiuntetelo al lyout della vostra Activity:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/app_theme"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <DatePicker
        android:id="@+id/date_picker"
        android:layout_width="fill_parent"
        android:layout_height="110dp"
        android:calendarViewShown="false" />

     <Button
            android:id="@+id/btn_up"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/btn" />

</LinearLayout>

Controllate quali opzioni fanno per voi ovviamente.

Ho messo anche un Button per impostarci sopra un evento di lettura della data scelta.

Poi nella nostra Avtivity:

public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_er);
        DatePicker datePicker = (DatePicker) findViewById(R.id.date_picker);
        Button btnLogin = (Button) findViewById(R.id.btn);
        btnLogin.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                String date = DateFormat.format("yyyy-MM-dd", datePicker.getCalendarView().getDate()).toString();
                System.out.println(date);
            }
        });
    }

}

Al click sul Button trasformo la data scelta in stringa e la formatto come voglio usando un oggetto DateFormat.

Mattepuffo's logo
Creare un array in Javascript da php

Creare un array in Javascript da php

A volte può capitare di dover creare un array in Javascript prendendo i dati da PHP.

Nel mio caso eseguo una query e i dati che prendo da PHP li devo spezzare e metterli dentro a delle input text.

La parte in PHP sarà una cosa del genere:

<?php

foreach ($objCerca->getCliente($_GET['id']) as $var) {
    echo $var['an_codice'] . ',', $var['an_ragsoc'] . ',', $var['an_piva'] . ',', $var['an_cf'];
}

La funzione getCliente() si occupa di eseguire la query (non mi soffermo su questo punto) e di inviare i dati separati da virgola, come li vuole JS per gli array.

Mattepuffo's logo
jQuery Validate con array di input

jQuery Validate con array di input

In un precedente articolo ho mostrato come usare il plugin jQuery Validate per la validazione dei form.

Partendo da la vediamo come poter validare il form in caso che ci siano più input con lo stesso nome.

<form action="#" id="frm_email_amici" method="post">
    <dl>
        <dt><label for="emailam">Invita almeno tre amici per diventare Gold</label></dt><br/>
        <dd><input type="text" name="emailam[]" value="" /></dd>
    </dl>
    <dl>
        <dd><input type="text" name="emailam[]" value="" /></dd>
    </dl>
    <dl>
        <dd><input type="text" name="emailam[]" value="" /></dd>
    </dl>
    <dl>
        <dd><input type="text" name="emailam[]" value="" /></dd>
    </dl>
    <dl>
        <dd><input type="text" name="emailam[]" value="" /></dd>
    </dl>
    <dl>
        <dd><input class="inviaeli" type="submit" value="Invia" name="btn_email_amici" /></dd>
    </dl>
</form>

Qua ci sono 5 input text che hanno lo stesso nome, e alla parte in PHP gliele passo come array.