NPE eh a exceção mais fácil de tratar...
Olhe na classe PedidoPizzaDialog.java, na linha 48.
Voce com certeza está apontando para algum objeto que você não esperava que ficasse null, mas está.
Em 23/10/2013 15:12, "Carlos Augusto Terceiro Batista" <carlosaugustoterceiro@gmail.com> escreveu:
-- Tenta debugar..--2013/10/23 Henrique Melo <henrique1985@gmail.com>
Se vc marcar as linhas que são mostradas na mensagem de erro, até posso tentar ajudar.2013/10/23 Matheus Henrique da Silva <matheustargaryen@gmail.com>
--A classe:public class ItemPizza extends ItemCardapio {HashMap<String, Double> preços;public ItemPizza(long id, int tipo, String nome) {super(id, tipo, nome);preço = null;preços = new HashMap<String, Double>();}public void setPreço(String k, Double p) {preços.put(k, p);}public Double getPreço(String key) {return preços.get(key);}}O fragmento que exibe a lista:public class CardapioListFragment extends Fragment implementsOnItemClickListener {private int tipo;private List<ItemCardapio> lista;private ListView lv;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);tipo = getArguments().getInt(CardapioActivity.EXTRA_TIPO_ITEM);popularLista(tipo);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View v = inflater.inflate(R.layout.listview_layout, null);lv = (ListView) v.findViewById(R.id.listview);lv.setAdapter(new Cardapio_Adapter(getActivity(), lista));lv.setOnItemClickListener(this);return v;}void popularLista(int tipo) {lista = new ArrayList<ItemCardapio>();try {switch (tipo) {case CardapioActivity.TIPO_PIZZA:lista = CardapioActivity.db.getPizzas();break;case CardapioActivity.TIPO_PIZZA_DOCE:lista = CardapioActivity.db.getPizzasDoces();break;case CardapioActivity.TIPO_MASSA:lista = CardapioActivity.db.getMassas();break;default:throw new JSONException("Erro ao popular a lista, CardapioListFragment.popularLista();");}} catch (JSONException e) {e.printStackTrace();}}@Overridepublic void onItemClick(AdapterView<?> adapter, View view, int pos, long id) {if (tipo == CardapioActivity.TIPO_MASSA) {ItemCardapio item = lista.get(pos);PedidoMassaDialog dialog = PedidoMassaDialog.newInstance(item);dialog.show(getFragmentManager(), null);} else {ItemPizza item = (ItemPizza) lista.get(pos);Toast.makeText(getActivity(),String.valueOf(item.getPreço(CardapioActivity.EXTRA_PREÇO_M)),Toast.LENGTH_LONG).show();PedidoPizzaDialog dialog = PedidoPizzaDialog.newInstance(item);dialog.show(getFragmentManager(), null);}}}
O adapter:public class Cardapio_Adapter extends BaseAdapter {Context context;List<ItemCardapio> lista;List<ItemPizza> listapizza;public Cardapio_Adapter(Context context, List<ItemCardapio> lista) {this.context = context;this.lista = lista;}@Overridepublic int getCount() {return lista.size();}@Overridepublic Object getItem(int arg0) {return lista.get(arg0);}@Overridepublic long getItemId(int arg0) {return lista.get(arg0).getId();}@Overridepublic View getView(int arg0, View view, ViewGroup viewgroup) {ItemCardapio item = (ItemCardapio) getItem(arg0);LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);view = inflater.inflate(R.layout.item_menu_layout, null);TextView nome = (TextView) view.findViewById(R.id.text_label_menu);TextView desc = (TextView) view.findViewById(R.id.text_desc_menu);nome.setText(item.getNome());desc.setText(item.getDesc());if (item.getTipo() == CardapioActivity.TIPO_PIZZA|| item.getTipo() == CardapioActivity.TIPO_PIZZA_DOCE) {return view;} else {TextView preco = (TextView) view.findViewById(R.id.preco_item_lista);preco.setText("R$ " + item.getPreço());return view;}}}
Onde as listas estao sendo criadas:public List<ItemCardapio> getPizzas() throws JSONException {return testeLista(CardapioActivity.TIPO_PIZZA);}public List<ItemCardapio> getPizzasDoces() throws JSONException {return testeLista(CardapioActivity.TIPO_PIZZA_DOCE);}// ======================MASSASpublic List<ItemCardapio> getMassas() throws JSONException {return testeLista(CardapioActivity.TIPO_MASSA);}
public List<ItemCardapio> testeLista(int tipo) {lista = new ArrayList<ItemCardapio>();if (tipo == CardapioActivity.TIPO_PIZZA|| tipo == CardapioActivity.TIPO_PIZZA_DOCE) {for (int i = 0; i < 10; i++) {ItemPizza item = new ItemPizza(i + 100, tipo, "Item de Teste "+ i);item.setDesc("Descrição do item " + i);item.setPreço(CardapioActivity.EXTRA_PREÇO_P, 10.0);item.setPreço(CardapioActivity.EXTRA_PREÇO_M, 20.0);item.setPreço(CardapioActivity.EXTRA_PREÇO_G, 30.0);item.setPreço(CardapioActivity.EXTRA_PREÇO_F, 40.0);lista.add(item);}return lista;} else {for (int i = 0; i < 10; i++) {ItemCardapio item = new ItemCardapio(i + 100, tipo,"Item de Teste " + i);item.setDesc("Descrição do item " + i);item.setPreço(25.00);lista.add(item);}return lista;}}
Quando eu clico na lista de pizzas ou pizzas doces, na hora de instanciar o PedidoPizzaDialog da o seguinte conjunto de erros:10-23 17:49:38.452: E/AndroidRuntime(1668): FATAL EXCEPTION: main10-23 17:49:38.452: E/AndroidRuntime(1668): java.lang.NullPointerException10-23 17:49:38.452: E/AndroidRuntime(1668): at pizzaria.lafornalha.fragment.PedidoPizzaDialog.<init>(PedidoPizzaDialog.java:48)10-23 17:49:38.452: E/AndroidRuntime(1668): at pizzaria.lafornalha.fragment.PedidoPizzaDialog.newInstance(PedidoPizzaDialog.java:26)10-23 17:49:38.452: E/AndroidRuntime(1668): at pizzaria.lafornalha.fragment.CardapioListFragment.onItemClick(CardapioListFragment.java:86)10-23 17:49:38.452: E/AndroidRuntime(1668): at android.widget.AdapterView.performItemClick(AdapterView.java:292)10-23 17:49:38.452: E/AndroidRuntime(1668): at android.widget.AbsListView.performItemClick(AbsListView.java:1058)10-23 17:49:38.452: E/AndroidRuntime(1668): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2514)10-23 17:49:38.452: E/AndroidRuntime(1668): at android.widget.AbsListView$1.run(AbsListView.java:3168)10-23 17:49:38.452: E/AndroidRuntime(1668): at android.os.Handler.handleCallback(Handler.java:605)10-23 17:49:38.452: E/AndroidRuntime(1668): at android.os.Handler.dispatchMessage(Handler.java:92)10-23 17:49:38.452: E/AndroidRuntime(1668): at android.os.Looper.loop(Looper.java:137)10-23 17:49:38.452: E/AndroidRuntime(1668): at android.app.ActivityThread.main(ActivityThread.java:4340)10-23 17:49:38.452: E/AndroidRuntime(1668): at java.lang.reflect.Method.invokeNative(Native Method)10-23 17:49:38.452: E/AndroidRuntime(1668): at java.lang.reflect.Method.invoke(Method.java:511)10-23 17:49:38.452: E/AndroidRuntime(1668): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)10-23 17:49:38.452: E/AndroidRuntime(1668): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)10-23 17:49:38.452: E/AndroidRuntime(1668): at dalvik.system.NativeStart.main(Native Method)
Já estou a varias horas nisto. Por favor alguém me ajude.
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.
--Henrique Nogueira de Melo
Analista e Arquiteto de Software--
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.
--Atenciosamente,Carlos Terceiro.Analista Desenvolvedor Web @TechWay InfoTécnico em Informática - IFCEOCJP - Oracle Certified Professional, Java SE 6 Programmer(085) 8777-7359
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.
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