2011-03-26 214 views
6

我在我所指的映射edittext對象的類方法之一的行中找到Resource Not Found異常....我不明白爲什麼我會遇到此問題。資源未找到異常

我有一個名爲「store.java」,只是將數據從一個打印其價值的紡紗和edittext..and一類叫做SpinPizza.java映射一個簡單的Java類.....

商店。的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

這是很多代碼。你能編輯這個只包括相關部分並指出哪一行導致錯誤? – 2011-03-26 19:29:54

+0

你是否正確地在你的xml中定義了editText? – asenovm 2011-03-26 19:45:53

+0

@ Phoenix->我知道這是相當一些代碼..我已經提到了我得到異常的線路,所以請直到那裏,並忽略進一步的代碼...你也可以忽略第一類,因爲我不認爲有在這個問題...只是看到SpinPizza .java ... nm抱歉的長代碼.... – 2011-03-26 20:30:01

回答

19

數量是一個int:

public int getQuantity() 

所以,你應該這樣做:

否則OS試圖找到該int,它是不存在的資源。

的詳細說明:EditText.setText()方法被重載所以它具有用於StringsetText(CharSequence text))的一個版本與一個字符串資源ID(setText(int resid))的一個版本。

+0

@ Arhimed- >感謝很多..它工作.. :-)但我還有一個問題......我不能發送B [我]到另一個活動。我使用Parcelable,我遵循正確的語法...但是,當我嘗試訪問B [i]的元素時,它會顯示Null指針異常...我有一種感覺,即B [i] .setOrder(s .getSelectedItem()。toString(),s1.getSelectedItem()。toString(),num); 不是正確的......我認爲Edittext還有另一個問題,因爲這個值不能正確存儲,所以我無法通過B [i]在其他活動中訪問它。如果你能解決這個問題,我真的很感激。一個也是...... – 2011-03-27 05:16:43

+2

@ user677124:你在搞點東西,不是嗎? :)請接受答案作爲「我找到資源未找到異常」的解決方案,並詢問有關將Parcelable傳遞給其他活動的其他問題。 – 2011-03-27 07:56:54

+0

似乎違反了我認爲最不讓人驚訝的原則。 – mjj1409 2014-08-07 14:15:07