2011-03-26 6 views
6

Je reçois l'exception Resource Not Found dans la ligne où je me réfère à l'une de mes méthodes de classe qui mappe un objet edittext .... Je ne comprends pas pourquoi je reçois ce problème.Ressource non trouvée Exception

J'ai une simple classe java nommé « store.java » qui vient correspondre les données des filateurs et edittext..and une classe appelée SpinPizza.java qui imprime leur valeur .....

Store. 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

Ceci est beaucoup de code. Pourriez-vous éditer ceci pour inclure seulement les sections appropriées et indiquer quelle ligne cause l'erreur? –

+0

définissez-vous correctement l'editText dans votre xml? – asenovm

+0

@ Phoenix-> Je sais que c'est un peu de code .. J'ai mentionné la ligne où je reçois l'exception si pls regarder jusqu'à là et ignorer l'autre code ... Vous pouvez également ignorer la première classe car je ne pense pas qu'il y a un problème dans ce ... Juste voir SpinPizza .java ... nm désolé pour le code long .... –

Répondre

19

Quantité est un entier:

public int getQuantity() 

vous devez donc utiliser ceci:

Sinon, le système d'exploitation essaie de trouver une ressource pour cette int, qui n'est pas présente.

Une explication détaillée: méthode EditText.setText() est surchargé il a une version pour un String (setText(CharSequence text)) et une version pour un identifiant de ressource de chaîne (setText(int resid)).

+0

@ Arhimed- > Merci beaucoup .. Ça a marché .. :-) Mais j'ai encore un problème ... Je ne suis pas capable d'envoyer B [i] à une autre activité. J'utilise Parcelable et je suis la syntaxe correcte ... Mais cela donne l'exception Null Pointer quand j'essaie d'accéder aux éléments de B [i] ... J'ai le sentiment que la ligne B [i] .setOrder (s .getSelectedItem(). toString(), s1.getSelectedItem(). toString(), num); n'est pas correct ... Je pense qu'il y a un autre problème avec Edittext car la valeur n'est pas stockée correctement et donc je suis incapable d'y accéder via B [i] dans l'autre activité .. Je serais vraiment obligé si vous pouviez résoudre ce problème un aussi ... –

+2

@ user677124: Vous vous trompez un peu, n'est-ce pas? :) S'il vous plaît, acceptez la réponse comme une solution pour "Je reçois l'exception Ressource non trouvée" et poser une autre question sur le passage de Parcelable à une autre activité. –

+0

Semble violer le principe de la moindre surprise à mon avis. – mjj1409

Questions connexes