For each

7 respostas
J
bom noite!

preciso de ajuda com for each. Tenho uma classe encapsulada chamada Insert com meus get e set. Tem com eu usar ela no for each para. Fazer um nova chamada dessa classe?

Tipo

Insert o = new Insert();

For (Insert ins1 : objectarray) {

// Aki eu coloco os get q preciso

}

Quando eu faço isso da tipos incompatível

Requerido object

Encontrado Insert

7 Respostas

staroski

A variável objectarray precisa ser do tipo Insert[], você declarou como Object[].

J

Obrigado, deu certo Aki. Mas só pra tirar uma dúvida teria como converte essa classe Insert em um object, porque objectarray fica com um aviso pedindo pra ser declarada como Object[].

staroski

Insert já é um Object, toda classe Java deriva de Object.

Onde fica esse aviso?
Posta o código completo.

J

Esse é o código completo. Eu uso ele pra preencher uma listview com lançamentos por conta.

public String[] getAccountDetailsBetweenDates(Context cxt, String acctName, String currency, String fromDate, String toDate) {

double balance_tillstartdate = getAccountPreviousBalance(cxt, acctName, currency, fromDate);

double balance_tillenddate = balance_tillstartdate;

List objlist = new ArrayList();

Compare cmp = new Compare();

Compare.budgetdatecheck = false;

List detailslist = new ArrayList();

DBAdapt dBAdapt = new DBAdapt(cxt);

try {

dBAdapt.createDataBase();

} catch (IOException e) {

e.printStackTrace();

}

dBAdapt.openDataBase();

Cursor cursor = dBAdapt.getExpenseByAccountBetweenDates(acctName, currency, fromDate, toDate);

Object[] objarray;

List ballist;

List rowidlist;

List namelist;

List datelist;

List desclist;

List amountlist;

List statuslist;

List catimagelist;

int i;

String[] rowIdarray;

String[] namearray;

String[] datearray;

String[] descarray;

String[] statusarray;

String[] catimagearray;

String[] amountarray;

int pos;

Double[] balarray;

Insert ins;

if (cursor.getCount() <= 0 || !cursor.moveToFirst()) {

cursor = dBAdapt.getIncomeByAccountBetweenDates(acctName, currency, fromDate, toDate);

if (cursor.getCount() < 0 || !cursor.moveToFirst()) {

cursor = dBAdapt.getTransferFromAccountBetweenDates(acctName, currency, fromDate, toDate);

if (cursor.getCount() < 0 || !cursor.moveToFirst()) {

cursor = dBAdapt.getTransferToAccountBetweenDates(acctName, currency, fromDate, toDate);

if (cursor.getCount() < 0 || !cursor.moveToFirst()) {

objarray = objlist.toArray(new Object[objlist.size()]);

Arrays.sort(objarray, cmp);

ballist = new ArrayList();

rowidlist = new ArrayList();

namelist = new ArrayList();

datelist = new ArrayList();

desclist = new ArrayList();

amountlist = new ArrayList();

statuslist = new ArrayList();

catimagelist = new ArrayList();

for (Insert ins1 : objarray) {

rowidlist.add(ins1.getRowid());

namelist.add(ins1.getName());

datelist.add(ins1.getDate());

desclist.add(ins1.getDesc());

amountlist.add(ins1.getAmount());

statuslist.add(ins1.getPaymentStatus());

catimagelist.add(ins1.getCatImage());

}

rowIdarray = (String[]) rowidlist.toArray(new String[rowidlist.size()]);

namearray = (String[]) namelist.toArray(new String[namelist.size()]);

datearray = (String[]) datelist.toArray(new String[datelist.size()]);

descarray = (String[]) desclist.toArray(new String[desclist.size()]);

statusarray = (String[]) statuslist.toArray(new String[statuslist.size()]);

catimagearray = (String[]) catimagelist.toArray(new String[catimagelist.size()]);

amountarray = (String[]) amountlist.toArray(new String[amountlist.size()]);

for (i = 0; i < amountarray.length; i++) {

pos = (amountarray.length - i) - 1;

if (!rowIdarray[pos].contains(DBAdaptTemp.EXPENSE_TABLE) || rowIdarray[pos].contains(Transferfrom) || rowIdarray[pos].contains(cxt.getResources().getString(R.string.expense)) || rowIdarray[pos].contains(new StringBuilder(String.valueOf(cxt.getResources().getString(R.string.transfer))).append(cxt.getResources().getString(R.string.from_account)).toString())) {

balance_tillenddate -= (double) Float.parseFloat(amountarray[pos].replace(",", .));

} else if (rowIdarray[pos].contains(DBAdaptTemp.INCOME_TABLE) || rowIdarray[pos].contains(Transferto) || rowIdarray[pos].contains(cxt.getResources().getString(R.string.income)) || rowIdarray[pos].contains(new StringBuilder(String.valueOf(cxt.getResources().getString(R.string.transfer))).append(cxt.getResources().getString(R.string.to_account)).toString())) {

balance_tillenddate += (double) Float.parseFloat(amountarray[pos].replace(",", .));

}

ballist.add(Double.valueOf(balance_tillenddate));

}

balarray = (Double[]) ballist.toArray(new Double[ballist.size()]);

Collections.reverse(Arrays.asList(balarray));

objlist.clear();

rowidlist.clear();

amountlist.clear();

ballist.clear();

if (cursor != null) {

cursor.close();

}

dBAdapt.close();

detailslist.add(new StringBuilder(String.valueOf(cxt.getResources().getString(R.string.closing_balance))).append(":").append(balance_tillenddate).toString());

for (i = 0; i < rowIdarray.length; i++) {

detailslist.add(rowIdarray[i] + : + namearray[i] + : + datearray[i] + : + descarray[i] + : + amountarray[i] + : + balarray[i] + : + statusarray[i] + : + catimagearray[i]);

}

detailslist.add(new StringBuilder(String.valueOf(cxt.getResources().getString(R.string.opening_balance))).append(":").append(balance_tillstartdate).toString());

return (String[]) detailslist.toArray(new String[detailslist.size()]);

}

do {

ins = new Insert();

ins.setRowid(new StringBuilder(String.valueOf(cursor.getString(0).toString())).append(",").append(cxt.getResources().getString(R.string.transfer)).append(cxt.getResources().getString(R.string.to_account)).toString());

ins.setName(cxt.getResources().getString(R.string.from_account));

ins.setAmount(cursor.getString(1).toString());

ins.setDate(cursor.getString(2).toString());

ins.setDesc(cursor.getString(3).toString());

ins.setPaymentStatus(cursor.getString(7).toString());

ins.setCatImage(cate_transferin);

objlist.add(ins);

} while (cursor.moveToNext());

objarray = objlist.toArray(new Object[objlist.size()]);

Arrays.sort(objarray, cmp);

ballist = new ArrayList();

rowidlist = new ArrayList();

namelist = new ArrayList();

datelist = new ArrayList();

desclist = new ArrayList();

amountlist = new ArrayList();

statuslist = new ArrayList();

catimagelist = new ArrayList();

for (Insert ins12 : objarray) {

rowidlist.add(ins12.getRowid());

namelist.add(ins12.getName());

datelist.add(ins12.getDate());

desclist.add(ins12.getDesc());

amountlist.add(ins12.getAmount());

statuslist.add(ins12.getPaymentStatus());

catimagelist.add(ins12.getCatImage());

}

rowIdarray = (String[]) rowidlist.toArray(new String[rowidlist.size()]);

namearray = (String[]) namelist.toArray(new String[namelist.size()]);

datearray = (String[]) datelist.toArray(new String[datelist.size()]);

descarray = (String[]) desclist.toArray(new String[desclist.size()]);

statusarray = (String[]) statuslist.toArray(new String[statuslist.size()]);

catimagearray = (String[]) catimagelist.toArray(new String[catimagelist.size()]);

amountarray = (String[]) amountlist.toArray(new String[amountlist.size()]);

for (i = 0; i < amountarray.length; i++) {

pos = (amountarray.length - i) - 1;

if (rowIdarray[pos].contains(DBAdaptTemp.EXPENSE_TABLE)) {

}

balance_tillenddate -= (double) Float.parseFloat(amountarray[pos].replace(",", .));

ballist.add(Double.valueOf(balance_tillenddate));

}

balarray = (Double[]) ballist.toArray(new Double[ballist.size()]);

Collections.reverse(Arrays.asList(balarray));

objlist.clear();

rowidlist.clear();

amountlist.clear();

ballist.clear();

if (cursor != null) {

cursor.close();

}

dBAdapt.close();

detailslist.add(new StringBuilder(String.valueOf(cxt.getResources().getString(R.string.closing_balance))).append(":").append(balance_tillenddate).toString());

for (i = 0; i < rowIdarray.length; i++) {

detailslist.add(rowIdarray[i] + : + namearray[i] + : + datearray[i] + : + descarray[i] + : + amountarray[i] + : + balarray[i] + : + statusarray[i] + : + catimagearray[i]);

}

detailslist.add(new StringBuilder(String.valueOf(cxt.getResources().getString(R.string.opening_balance))).append(":").append(balance_tillstartdate).toString());

return (String[]) detailslist.toArray(new String[detailslist.size()]);

}

do {

ins = new Insert();

ins.setRowid(new StringBuilder(String.valueOf(cursor.getString(0).toString())).append(",").append(cxt.getResources().getString(R.string.transfer)).append(cxt.getResources().getString(R.string.from_account)).toString());

ins.setName(cxt.getResources().getString(R.string.to_account));

ins.setAmount(cursor.getString(1).toString());

ins.setDate(cursor.getString(2).toString());

ins.setDesc(cursor.getString(3).toString());

ins.setPaymentStatus(cursor.getString(7).toString());

ins.setCatImage(cate_transferout);

objlist.add(ins);

} while (cursor.moveToNext());

objarray = objlist.toArray(new Object[objlist.size()]);

Arrays.sort(objarray, cmp);

ballist = new ArrayList();

rowidlist = new ArrayList();

namelist = new ArrayList();

datelist = new ArrayList();

desclist = new ArrayList();

amountlist = new ArrayList();

statuslist = new ArrayList();

catimagelist = new ArrayList();

for (Insert ins122 : objarray) {

rowidlist.add(ins122.getRowid());

namelist.add(ins122.getName());

datelist.add(ins122.getDate());

desclist.add(ins122.getDesc());

amountlist.add(ins122.getAmount());

statuslist.add(ins122.getPaymentStatus());

catimagelist.add(ins122.getCatImage());

}

rowIdarray = (String[]) rowidlist.toArray(new String[rowidlist.size()]);

namearray = (String[]) namelist.toArray(new String[namelist.size()]);

datearray = (String[]) datelist.toArray(new String[datelist.size()]);

descarray = (String[]) desclist.toArray(new String[desclist.size()]);

statusarray = (String[]) statuslist.toArray(new String[statuslist.size()]);

catimagearray = (String[]) catimagelist.toArray(new String[catimagelist.size()]);

amountarray = (String[]) amountlist.toArray(new String[amountlist.size()]);

for (i = 0; i < amountarray.length; i++) {

pos = (amountarray.length - i) - 1;

if (rowIdarray[pos].contains(DBAdaptTemp.EXPENSE_TABLE)) {

}

balance_tillenddate -= (double) Float.parseFloat(amountarray[pos].replace(",", .));

ballist.add(Double.valueOf(balance_tillenddate));

}

balarray = (Double[]) ballist.toArray(new Double[ballist.size()]);

Collections.reverse(Arrays.asList(balarray));

objlist.clear();

rowidlist.clear();

amountlist.clear();

ballist.clear();

if (cursor != null) {

cursor.close();

}

dBAdapt.close();

detailslist.add(new StringBuilder(String.valueOf(cxt.getResources().getString(R.string.closing_balance))).append(":").append(balance_tillenddate).toString());

for (i = 0; i < rowIdarray.length; i++) {

detailslist.add(rowIdarray[i] + : + namearray[i] + : + datearray[i] + : + descarray[i] + : + amountarray[i] + : + balarray[i] + : + statusarray[i] + : + catimagearray[i]);

}

detailslist.add(new StringBuilder(String.valueOf(cxt.getResources().getString(R.string.opening_balance))).append(":").append(balance_tillstartdate).toString());

return (String[]) detailslist.toArray(new String[detailslist.size()]);

}

do {

ins = new Insert();

ins.setRowid(new StringBuilder(String.valueOf(cursor.getString(0).toString())).append(",").append(cxt.getResources().getString(R.string.income)).toString());

ins.setName(cursor.getString(1).toString());

ins.setAmount(cursor.getString(2).toString());

ins.setDate(cursor.getString(3).toString());

ins.setPaymentStatus(cursor.getString(8).toString());

ins.setCatImage(cursor.getString(10).toString());

ins.setDesc(Nill);

objlist.add(ins);

} while (cursor.moveToNext());

objarray = objlist.toArray(new Object[objlist.size()]);

Arrays.sort(objarray, cmp);

ballist = new ArrayList();

rowidlist = new ArrayList();

namelist = new ArrayList();

datelist = new ArrayList();

desclist = new ArrayList();

amountlist = new ArrayList();

statuslist = new ArrayList();

catimagelist = new ArrayList();

for (Insert ins1222 : objarray) {

rowidlist.add(ins1222.getRowid());

namelist.add(ins1222.getName());

datelist.add(ins1222.getDate());

desclist.add(ins1222.getDesc());

amountlist.add(ins1222.getAmount());

statuslist.add(ins1222.getPaymentStatus());

catimagelist.add(ins1222.getCatImage());

}

rowIdarray = (String[]) rowidlist.toArray(new String[rowidlist.size()]);

namearray = (String[]) namelist.toArray(new String[namelist.size()]);

datearray = (String[]) datelist.toArray(new String[datelist.size()]);

descarray = (String[]) desclist.toArray(new String[desclist.size()]);

statusarray = (String[]) statuslist.toArray(new String[statuslist.size()]);

catimagearray = (String[]) catimagelist.toArray(new String[catimagelist.size()]);

amountarray = (String[]) amountlist.toArray(new String[amountlist.size()]);

for (i = 0; i < amountarray.length; i++) {

pos = (amountarray.length - i) - 1;

if (rowIdarray[pos].contains(DBAdaptTemp.EXPENSE_TABLE)) {

}

balance_tillenddate -= (double) Float.parseFloat(amountarray[pos].replace(",", .));

ballist.add(Double.valueOf(balance_tillenddate));

}

balarray = (Double[]) ballist.toArray(new Double[ballist.size()]);

Collections.reverse(Arrays.asList(balarray));

objlist.clear();

rowidlist.clear();

amountlist.clear();

ballist.clear();

if (cursor != null) {

cursor.close();

}

dBAdapt.close();

detailslist.add(new StringBuilder(String.valueOf(cxt.getResources().getString(R.string.closing_balance))).append(":").append(balance_tillenddate).toString());

for (i = 0; i < rowIdarray.length; i++) {

detailslist.add(rowIdarray[i] + : + namearray[i] + : + datearray[i] + : + descarray[i] + : + amountarray[i] + : + balarray[i] + : + statusarray[i] + : + catimagearray[i]);

}

detailslist.add(new StringBuilder(String.valueOf(cxt.getResources().getString(R.string.opening_balance))).append(":").append(balance_tillstartdate).toString());

return (String[]) detailslist.toArray(new String[detailslist.size()]);

}

do {

ins = new Insert();

ins.setRowid(new StringBuilder(String.valueOf(cursor.getString(0).toString())).append(",").append(cxt.getResources().getString(R.string.expense)).toString());

ins.setName(cursor.getString(1).toString());

ins.setAmount(cursor.getString(2).toString());

ins.setDate(cursor.getString(3).toString());

ins.setPaymentStatus(cursor.getString(8).toString());

ins.setCatImage(cursor.getString(10).toString());

ins.setDesc(Nill);

objlist.add(ins);

} while (cursor.moveToNext());

objarray = objlist.toArray(new Object[objlist.size()]);

Arrays.sort(objarray, cmp);

ballist = new ArrayList();

rowidlist = new ArrayList();

namelist = new ArrayList();

datelist = new ArrayList();

desclist = new ArrayList();

amountlist = new ArrayList();

statuslist = new ArrayList();

catimagelist = new ArrayList();

for (Insert ins12222 : objarray) {

rowidlist.add(ins12222.getRowid());

namelist.add(ins12222.getName());

datelist.add(ins12222.getDate());

desclist.add(ins12222.getDesc());

amountlist.add(ins12222.getAmount());

statuslist.add(ins12222.getPaymentStatus());

catimagelist.add(ins12222.getCatImage());

}

rowIdarray = (String[]) rowidlist.toArray(new String[rowidlist.size()]);

namearray = (String[]) namelist.toArray(new String[namelist.size()]);

datearray = (String[]) datelist.toArray(new String[datelist.size()]);

descarray = (String[]) desclist.toArray(new String[desclist.size()]);

statusarray = (String[]) statuslist.toArray(new String[statuslist.size()]);

catimagearray = (String[]) catimagelist.toArray(new String[catimagelist.size()]);

amountarray = (String[]) amountlist.toArray(new String[amountlist.size()]);

for (i = 0; i < amountarray.length; i++) {

pos = (amountarray.length - i) - 1;

if (rowIdarray[pos].contains(DBAdaptTemp.EXPENSE_TABLE)) {

}

balance_tillenddate -= (double) Float.parseFloat(amountarray[pos].replace(",", .));

ballist.add(Double.valueOf(balance_tillenddate));

}

balarray = (Double[]) ballist.toArray(new Double[ballist.size()]);

Collections.reverse(Arrays.asList(balarray));

objlist.clear();

rowidlist.clear();

amountlist.clear();

ballist.clear();

if (cursor != null) {

cursor.close();

}

dBAdapt.close();

detailslist.add(new StringBuilder(String.valueOf(cxt.getResources().getString(R.string.closing_balance))).append(":").append(balance_tillenddate).toString());

for (i = 0; i < rowIdarray.length; i++) {

detailslist.add(rowIdarray[i] + : + namearray[i] + : + datearray[i] + : + descarray[i] + : + amountarray[i] + : + balarray[i] + : + statusarray[i] + : + catimagearray[i]);

}

detailslist.add(new StringBuilder(String.valueOf(cxt.getResources().getString(R.string.opening_balance))).append(":").append(balance_tillstartdate).toString());

return (String[]) detailslist.toArray(new String[detailslist.size()]);

}
J

Esta é minha classe Insert

class Insert {

private String account;

private String amount;

private String category;

private String catimage;

private String date;

private String desc;

private String name;

private String notes;

private String payee;

private String paymentmethod;

private String paymentstatus;

private String rowid;

private String stat_catamount;

private int stat_catintamount;

private String stat_catname;

private String subCategory;

private String tags;
public String getRowid() {
    return this.rowid;
}

public void setRowid(String rowid) {
    this.rowid = rowid;
}

public String getName() {
    return this.name;
}

public void setName(String name) {
    this.name = name;
}

public String getAmount() {
    return this.amount;
}

public void setAmount(String amount) {
    this.amount = amount;
}

public String getDate() {
    return this.date;
}

public void setDate(String date) {
    this.date = date;
}

public String getDesc() {
    return this.desc;
}

public void setDesc(String desc) {
    this.desc = desc;
}

public String getStatCatName() {
    return this.stat_catname;
}

public void setStatCatName(String catname) {
    this.stat_catname = catname;
}

public String getCatImage() {
    return this.catimage;
}

public void setCatImage(String catimage) {
    this.catimage = catimage;
}

public String getNotes() {
    return this.notes;
}

public void setNotes(String notes) {
    this.notes = notes;
}

public String getStatCatAmount() {
    return this.stat_catamount;
}

public void setStatAmount(String amount) {
    this.stat_catamount = amount;
}

public int getStatIntAmount() {
    return this.stat_catintamount;
}

public void setStatIntAmount(int intamount) {
    this.stat_catintamount = intamount;
}

public String getPaymentStatus() {
    return this.paymentstatus;
}

public void setPaymentStatus(String status) {
    this.paymentstatus = status;
}

public String getTags() {
    return this.tags;
}

public void setTags(String tags) {
    this.tags = tags;
}

public String getsubCategory() {
    return this.subCategory;
}

public void setsubCategory(String subCategory) {
    this.subCategory = subCategory;
}

public String getPaymetMethod() {
    return this.paymentmethod;
}

public void setPaymetMethod(String method) {
    this.paymentmethod = method;
}

public String getAccount() {
    return this.account;
}

public void setAccount(String account) {
    this.account = account;
}

public String getcategory() {
    return this.category;
}

public void setcategory(String category) {
    this.category = category;
}

public String getPayee() {
    return this.payee;
}

public void setPayee(String payee) {
    this.payee = payee;
}

}

staroski

Inviável ler seu fonte dessa forma…
Usa o botão de texto pré-formatado </> ao postar código no fórum.

Algum motivo especial para não utilizar generics no seu código?

Seu método getAccountDetailsBetweenDates tem quase 400 linhas, isso não se faz, dá uma refatorada e quebra ele em métodos (ou classes) menores.
Um método, para permanecer legível, não deveria passar de 20 linhas.

J

Eu sou novo Aki no fórum ainda não sei utilizar as ferramentas direito. Obrigado pelas dicas vou tentar da enxugada no código e utilizar o generics.

Criado 20 de dezembro de 2018
Ultima resposta 21 de dez. de 2018
Respostas 7
Participantes 2