2011-03-26 22 views
6

Recibo la excepción de recurso no encontrado en la línea donde me refiero a uno de mis métodos de clase que mapea un objeto de texto de edición ... No entiendo por qué estoy recibiendo este problema.Recurso no encontrado Excepción

que tienen una clase Java simple denominada 'store.java' que simplemente asigna los datos de los hiladores y edittext..and una clase llamada SpinPizza.java que imprime su valor .....

tienda. java

 
package com.Lak; 

import android.os.Parcel; 
import android.os.Parcelable; 

public class store implements Parcelable { 

    private static final long serialVersionUID = 1L; 
    private String pizzaname; 
    private String pizzasize; 
    private int n; 
    public void setOrder(String name,String size,int qty) 
    { 
     pizzaname = name; 
     pizzasize = size; 
     n = qty; 
    } 
    public String getPizzaName() 
    { 
     return pizzaname;  
    } 

    public int getQuantity() { 
     return n; 
    } 

    public String getPizzaSize() { 
     return pizzasize; 
    } 
    public int describeContents() { 
     return 0; 
    } 

    @SuppressWarnings("rawtypes") 
    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { 
      public store createFromParcel(Parcel in) { 
       return new store(in); 
      } 

      public store[] newArray(int size) { 
       return new store[size]; 
      } 
     }; 

    public void writeToParcel(Parcel dest, int flags) { 

      dest.writeInt(n); 
      dest.writeString(pizzaname); 
      dest.writeString(pizzasize); 
    } 

    public store() 

    {} 

     public store(Parcel source){ 
      /* 
      * Reconstruct from the Parcel 
      */ 
      n = source.readInt(); 
      pizzaname = source.readString(); 
      pizzasize = source.readString(); 
    } 

    /** Called when the activity is first created. */ 
} 

SpinPizza.java

 
package com.Lak; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 
import android.view.View.OnKeyListener; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.widget.Toast; 

public class SpinPizza extends Activity{ 

    private static final long serialVersionUID = 1L; 

    store B[]= new store[10]; 

    int n,i, num; 
    Spinner s=null,s1=null; 
    EditText edittext=null; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.drop); 

     s = (Spinner) findViewById(R.id.spinner); 

     ArrayAdapter adapter = ArrayAdapter.createFromResource(
       this, R.array.pizzaarray, android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     s.setAdapter(adapter); 

     s1 = (Spinner) findViewById(R.id.spinner1); 
     ArrayAdapter adapter1 = ArrayAdapter.createFromResource(
       this, R.array.sizearray, android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     s1.setAdapter(adapter1); 

     edittext = (EditText) findViewById(R.id.edittext);i=0; 
     edittext.setOnKeyListener(new OnKeyListener() { 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       // If the event is a key-down event on the "enter" button 
       if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
        (keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KeyEvent.KEYCODE_DPAD_CENTER)) { 
        // Perform action on key press 

        B[i]=new store(); 
         //n=Integer.parseInt(edittext.getText().toString()); 

         // num = Float.valueOf(edittext.getText().toString()); 

       try { 
       num = Integer.parseInt(edittext.getText().toString()); 
      } 
       catch(NumberFormatException nfe) 
            { 
          System.out.println("Could not parse " + nfe); 
         } 

B[i].setOrder(s.getSelectedItem().toString(), s1.getSelectedItem().toString(),num); 

     TextView objText=(TextView) findViewById(R.id.pl); 

     TextView objText1=(TextView) findViewById(R.id.pl2); 

     TextView objText2=(TextView) findViewById(R.id.pl3); 

     objText.setText(B[i].getPizzaName()); 

     objText1.setText(B[i].getPizzaSize()); 

      objText2.setText(B[i].getQuantity()); //**RESOURCE NOT FOUND EXCEPTION** 

       i++; 

     Toast.makeText(SpinPizza.this, edittext.getText(), Toast.LENGTH_SHORT).show(); 

       return true; 
       } 
      return false; 
      } 
     }); 

      Button next1 = (Button) findViewById(R.id.bill); 

      next1.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View view) { 

        Intent myIntent = new Intent(view.getContext(), Bill.class); 
     // store B= new store(); 

         myIntent.putExtra("myclass",B); 

        myIntent.putExtra("len",i); 
        int j; 

        for(j=0;j<i;j++) 
         //{myIntent.putExtra("my",s.getSelectedItem().toString()); 
        // myIntent.putExtra("my1",s1.getSelectedItem().toString()); 
        // } 

        { myIntent.putExtra("my",B[j].getPizzaName()); 

        myIntent.putExtra("my1",B[j].getPizzaSize()); 

        myIntent.putExtra("my2",B[j].getQuantity()); 
        } 

         startActivityForResult(myIntent, 0); 
       } 
      }); 
    } 
} 
+4

Este es MUCHO código. ¿Podría editar esto para incluir solo las secciones relevantes y señalar qué línea está causando el error? –

+0

¿defines correctamente el editText en tu xml? – asenovm

+0

@ Phoenix-> Sé que esto es un poco de código ... He mencionado la línea donde recibo la excepción así que por favor miro hasta allí e ignoro el código adicional ... También puede ignorar la primera clase ya que no creo que haya un problema en eso ... Solo vea SpinPizza .java ... nm perdón por el código largo ... –

Respuesta

19

la cantidad es un int:

public int getQuantity() 

lo que debe utilizar esto:

De lo contrario el sistema operativo trata de encontrar un recurso para que int, que no está presente.

Una explicación detallada: EditText.setText() método está sobrecargado por lo que tiene una versión para un String (setText(CharSequence text)) y una versión para un ID de recurso de cadena (setText(int resid)).

+0

@ Arhimed- > Gracias mucho ... Funcionó ... :-) Pero tengo un problema más ... No puedo enviar B [i] a otra actividad. Estoy usando Parcelable y estoy siguiendo la sintaxis correcta ... Pero da muestra la excepción del puntero nulo cuando intento acceder a los elementos de B [i] ... Tengo la sensación de que la línea B [i] .setOrder (s) .getSelectedItem(). toString(), s1.getSelectedItem(). toString(), num); no es correcto ... Creo que hay otro problema con Edittext ya que el valor no se almacena correctamente y no puedo acceder a él a través de B [i] en la otra actividad ... Realmente me obligaré a solucionarlo. uno también ... –

+2

@ user677124: Estás jugando un poco, ¿no? :) Acepte la respuesta como una solución para "Recibo la excepción de recurso no encontrado" y solicite otra pregunta sobre el envío de paquetes a otra actividad. –

+0

Parece violar el principio de menor sorpresa en mi opinión. – mjj1409

Cuestiones relacionadas