Originariamente inviato da
fedestylah
Posta il codice di quanto lo istanzi e poi dai un'occhiata a questo thread
Avevo già visto questo thread ma il problema è il caricamento delle classi dalla libreria
codice:
importa = (Button) findViewById(R.id.buttonImporta);
importa.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
File f = new File(pathForActivity);
FileInputStream fis = null;
try {
fis = new FileInputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Contatto[] contattiImportati = getContactsFromFile(fis);
for (int i = 0; i < contattiImportati.length; i++)
db.inserisciContatto(db.getWritableDatabase(),
contattiImportati[i].getTitolo(),
contattiImportati[i].getCognome(),
contattiImportati[i].getNome(),
contattiImportati[i].getSesso(),
contattiImportati[i].getUfficio(),
contattiImportati[i].getTel1(),
contattiImportati[i].getTel2(),
contattiImportati[i].getTel3(),
contattiImportati[i].getEmail(),
contattiImportati[i].getFax(),
contattiImportati[i].getUrl());
Toast t = Toast.makeText(v.getContext(), "Contatti Importati",
Toast.LENGTH_SHORT);
t.show();
finish();
startSubActivity();
}
});
Il File viene preso e caricato senza problemi. Ora tutto sta nel metodo:
codice:
private Contatto[] getContactsFromFile(FileInputStream is) {
/*
* 0 titolo, 1 cognome, 2 nome, 3 sesso, 4 ufficio, 5 tel1, 6 tel2, 7
* tel3, 8 email, 9 fax, 10 url
*/
ArrayList<Contatto> contatti = new ArrayList<Contatto>();
int numElem = 0;
Workbook wb = null;
try {
wb = new HSSFWorkbook(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Sheet foglio = wb.getSheetAt(0);
Row singoloContatto = null;
Cell[] elems = null;
int numRiga = 1;
while (numElem < foglio.getLastRowNum()) {
// parto dalla riga 1 poiché la 0 contiene i nomi delle colonne
singoloContatto = foglio.getRow(numRiga);
for (int i = 0; i < singoloContatto.getLastCellNum(); i++)
elems[i] = singoloContatto.getCell(i);
contatti.add(new Contatto(elems[0].getStringCellValue(), elems[1].getStringCellValue()
.toString(), elems[2].getStringCellValue(), elems[3]
.getStringCellValue(), elems[4].getStringCellValue(),
elems[5].getStringCellValue(), elems[6]
.getStringCellValue(), elems[7]
.getStringCellValue(), elems[8]
.getStringCellValue(), elems[9]
.getStringCellValue(),elems[10]
.getStringCellValue(),));
numRiga++;
numElem++;
}
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return (Contatto[]) contatti.toArray();
}
PS: Grazie infinite per l'aiuto.