Tenta fazer um catch mais genérico catch (Throwable t), as vezes tá dando algum outro tipo de exceção.
Em quinta-feira, 28 de novembro de 2013 18h55min34s UTC-2, Matheus Henrique da Silva escreveu:
-- Em quinta-feira, 28 de novembro de 2013 18h55min34s UTC-2, Matheus Henrique da Silva escreveu:
Tudo começa em um DialogFragment que, quando é chamado carrega e exibe os items de uma tabela no sqlite. Antes disso, ele verifica se a lista retornada tem tamanho maior que zero, em caso positivo, da dismiss no dialog enquanto exibe uma mensagem de que a lista está vazia.
@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); try {lista = CardapioActivity.db.getListaPedido(); } catch (JSONException e) {e.printStackTrace();}if (lista.size() == 0) {Toast.makeText(getActivity(), "A lista de pedidos está vazia.",Toast.LENGTH_SHORT).show();dismiss();}}
public ArrayList<ItemPedido> getListaPedido() throws JSONException{db = this.getReadableDatabase();ArrayList<ItemPedido> listapedidos = new ArrayList<ItemPedido>();Cursor c = db.query(TABELA_PEDIDOS, null, null, null, null, null, null);int tipo;if (c.moveToFirst()) {do {Log.i("lf", String.valueOf(c.getInt(c.getColumnIndex(Database.COL_TIPO_ITEM)))); tipo = c.getInt(c.getColumnIndex(Database.COL_TIPO_ITEM)); switch (tipo) {case ItemCardapio.TIPO_PIZZA:listapedidos.add(new ItemPedido_Pizza(c));break;case ItemCardapio.TIPO_PIZZA_DOCE:listapedidos.add(new ItemPedido_Pizza(c));break;case ItemCardapio.TIPO_MASSA:listapedidos.add(new ItemPedido_Massa(c));break;default:listapedidos.add(new ItemPedido(c));break;}} while (c.moveToNext());}db.close();return listapedidos;}
De maneira inexplicável, ao passar pela linhaele vai direto para o
tipo = c.getInt(c.getColumnIndex(Database.COL_TIPO_ITEM));
catch (JSONException e) {e.printStackTrace();}e o pior, no debug o valor de e é null, enquanto isso aquele Log.i esta imprimindo o valor 1, que é o correto.Então, pelos sete infernos, por que esta lançando um JSONException ao atribuir esse 1 à variavel tipo?
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
0 comentários:
Postar um comentário