Parsing della riga di comando in Python con Click

Parsing della riga di comando in Python con Click

Forse Click è la migliore libreria per il parsing della riga di comando che ho provato in Python.

E' stata veramente facile usarla; prima di tutto installiamola:

$ pip install click

Leggi
Usare finestre modali in AngularJS

Usare finestre modali in AngularJS

Oggi vediamo come usare finestre modali con AngularJS.

In pratica, cliccando su un tasto, vedremo il dettaglio di un record nella finestra modale.

Partiamo quindi dalla tabella che espone i dati:

                    <table class="table table-bordered table-condensed table-striped">
                        <thead>
                            <tr>
                                <th>Titolo</th>
                                <th>Autore</th>
                                <th>Editore</th>
                                <th></th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr ng-repeat="book in books| filter:searchText">
                                <td>{{book.title}}</td>
                                <td>{{book.author}}</td>
                                <td>{{book.editor}}</td>
                                <td>
                                    <button type="button" class="btn btn-sm btn-primary"
                                            ng-click="open(book)">Dettaglio</button>
                                </td>
                            </tr>
                        </tbody>
                    </table>

Su come prendere i dati potete vedere questo articolo (anche se non usiamo una table in quel caso, ma il concetto è uguale).

Leggi
Creare un dialog con QML

Creare un dialog con QML

Faccio un passo in più, e vediamo come aprire una finestra di dialogo cliccando su un elemento della ListView.

Qui abbiamo visto come riempire una ListView da dati JSON.

Come possiamo vedere, sulla ListView mostriamo solo un campo rispetto a quelli che prendiamo.

Adesso, cliccando su una riga, vogliamo vedere anche gli altri.

Prima di tutto creiamo un altro file QML (detail_dialog.qml) con questo dentro:

import QtQuick 2.0

Item {
    id: detailDialog
    anchors.fill: parent
    PropertyAnimation {
        target: detailDialog
        property: "opacity"
        duration: 400
        from: 0
        to: 1
        easing.type: Easing.InOutQuad
        running: true
    }

    Rectangle {
        id: dialogWindow
        width: 200
        height: 200
        radius: 10
        border.color: "black"
        anchors.centerIn: parent
        Text {
            anchors.centerIn: parent
            text: "AUTORE: " + author + "\nEDITORE: " + editor + "\nPREZZO: " + price + "\nISBN: " + isbn + "\nNOTE: " + note
        }
        MouseArea{
            anchors.fill: parent
            onClicked: {
                detailDialog.destroy()
            }
        }
    }
}

Adesso dobbiamo intercettare l'evento click sulla riga nella finestra principale.

Leggi
Ordinare una ListView in Android

Ordinare una ListView in Android

Abbiamo visto come riempire una ListView in Android usando dati in formato JSON.

Solo che la lista risulta "statica" nel senso che come ci arriva la leggiamo, e non possiamo ordinarla.

Qui vediamo proprio questo: come ordinare una ListView simulando una tabella con righe e colonne.

Partiamo dalla Activity principale:

public class MainActivity extends Activity {
    
    private TextView txtTitolo = null;
    private TextView txtCreazione = null;
    private ListView listView = null;
    private SimpleAdapter adapter = null;
    private ArrayList> list = new ArrayList>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setLista();
        txtTitolo = (TextView) findViewById(R.id.h_titolo);
        txtCreazione = (TextView) findViewById(R.id.h_creazione);
        txtTitolo.setOnClickListener(new ListSort(list, "titolo", adapter));
        txtCreazione.setOnClickListener(new ListSort(list, "creazione", adapter));
    }
    
    private void setLista() {
        try {
            listView = (ListView) findViewById(R.id.lista_articoli);
            JSONArray jsonArray = new JSONArray(JsonFile.read(path + "blog_articoli.json"));
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jo = jsonArray.getJSONObject(i);
                HashMap map = new HashMap();
                map.put("id", jo.getString("id"));
                map.put("titolo", jo.getString("titolo"));
                map.put("creazione", jo.getString("creazione"));
                map.put("modifica", jo.getString("modifica"));
                map.put("count", jo.getString("count"));
                list.add(map);
            }
            adapter = new SimpleAdapter(this, list, R.layout.rows,
                    new String[] { "titolo", "creazione", "modifica", "count" },
                    new int[] { R.id.titolo, R.id.creazione, R.id.modifica, R.id.count });
            listView.setAdapter(adapter);
        } catch (JSONException e) {
        } catch (Exception e) {
        }
    }

}

Tralascio tutta la parte del recupero dati, partendo che l'abbiate già messa a punto (quella parte non cambia).

Leggi
Asp.NET LinkButton

Asp.NET LinkButton

In una pagina aspx ho un LinkButton con il quale attivo un evento.

La cosa più "problematica" è che devo passare il valore del LinkButton ad un altro componente.

In questo caso non bastano le solite proprietà Value o Text.

Andiamo con ordine; questo il componente nella pagina:

<asp:LinkButton ID="btn_art_singolo" runat="server" OnCommand="go_Click" CommandName='<%# DataBinder.Eval(Container.DataItem, "ARTICOLO") %>'>
   <%# DataBinder.Eval(Container.DataItem, "ARTICOLO") %>
</asp:LinkButton>

Il LinkButton sta dentro a un Repeater e prende il valore in maniera dinamica da database.

Tanto per cominciare no avremo un evento OnClick ma u nevento OnCommand.

Leggi
Lanciare un'Activity in Android

Lanciare un'Activity in Android

Le applicazioni Android difficilemente son composte da una sola Activity.

Creare un'Acitivity per ogni compito è la normalità visto anche lo spazio ridotto dei cellulari.

Vediamo come possiamo fare per richiamare un'altra Activity.

Prima di tutto create un altro layout e chiamatelo second; nella cartella layout dovremmo avere second.xml.

Questo sarà il layout della nostra seconda Activity.

Una volta modificato come volete create una nuova classe che estende Activity:

public class SecondActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);

}

Poi andate a modificare il file AndroidManifest.xml:

Leggi

About Mattepuffo.com

Blog dedicato all'informatica e alla programmazione!
Tutti i contenuti di questo blog, tranne casi particolari, sono sotto licenza Licenza Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.5. .

2612 articoli
310 commenti
19 progetti
Altri link
  • About
  • Scrivimi
  • Copyright
  • Sitemap
  • matteo.ferrone@yahoo.it
  • GitHub
  • Privacy Policy