stringbuilder

Mattepuffo's logo
Riempire una ListView Android da XML

Riempire una ListView Android da XML

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

Oggi vediamo come fare la stessa cosa usando l'altro formato principe per strutturare i dati: XML.

Qua useremo una Activity invece di un Fragment, ma cambia relativamente poco.

Partiamo dalla Activity:

public class MainActivity extends ListActivity {

    private ArrayList list;
    private ArrayAdapter adapter;
    private ReadXml rx;
    private ListView lv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = getListView();
        rx = new ReadXml();
        setLista();
    }

    private void setLista() {
        try {
            list = rx.readClienti(getApplicationContext(), Environment.getExternalStorageDirectory() .getAbsolutePath() + File.separator + "dati.xml" ;
        } catch (IOException e) {
        } catch (SAXException e) {
        } catch (ParserConfigurationException e) {
        }
        adapter = new ArrayAdapter(getApplicationContext(),
                android.R.layout.simple_list_item_1, list);
        lv.setAdapter(adapter);

    }

}

Abbiamo un metodo setLista che si occupa di riempire la ListView.

Mattepuffo's logo
Convertire un indirizzo IP in numero decimale in Java

Convertire un indirizzo IP in numero decimale in Java

Il perchè dovremmo fare questa operazione non lo so di preciso; magari può esserci utile in qualche applicazione di monitoraggio, o solo per dimostrazione.

Fatto sta che l'ho fatto (proprio in una applicazione di monitoring) e quindi vediamo come si può fare.

Per trasformare un IP in decimale:

  public long ipToLong(String ipAddress) {
    String[] ipAddressArray = ipAddress.split("\\.");
    long result = 0;
    for (int i = 0; i < ipAddressArray.length; i++) {
        int power = 3 - i;
        int ip = Integer.parseInt(ipAddressArray[i]);
        result += ip * Math.pow(256, power);
    }
    return result;
  }

Ricordandovi che un indirizzo IP è in base 256.