2012-04-19 95 views
1

即時嘗試從我的活動之一發送字符串到組的主要活動,但我有一個小問題。我試圖創建一個對象在我的代碼的onActivityResult部分(這似乎工作)。但是當試圖從getName()以外的其他類訪問方法時,它會吐出資源未找到的異常。我相信這個解決方案很簡單,但是在對它進行一些公正的調查之後,它仍然在逃避我。繼承人的代碼....將數據傳遞給onActivityResult的問題

MainActivity

public void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     super.onActivityResult(requestCode, resultCode, data); 
     switch(requestCode) 
     { 
     case 0: 
      //for add activity 
      if(resultCode == RESULT_OK) 
      { 

         namePasser = data.getExtras().getString("tallyName").toString(); 
         itemHm.put("item1", new Items(namePasser,1)); 
         itemAmt++; 
         currItem = itemHm.get("item1"); 
         nameView1.setText(currItem.getName()); 
         countView1.setText(currItem.getGroup()); 
         count1b.setVisibility(View.VISIBLE); 
         reduce1b.setVisibility(View.VISIBLE); 
         countView1.setVisibility(View.VISIBLE); 
         resetb.setVisibility(View.VISIBLE); 

      } 
     } 
    } 

addActivity

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.text.Editable; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

public class addActivity extends Activity 
{ 
    EditText name; 
    String itemName; 
    Button next; 
    Intent data; 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.addactivityxml); 
     Button next = (Button) findViewById(R.id.button1); 
     next.setOnClickListener(new View.OnClickListener() 
     { 
      public void onClick(View view) 
      { 
       name = (EditText)findViewById(R.id.newitemtxt); 
       itemName = name.getText().toString(); 
       data = new Intent(); 
       data.putExtra("tallyName", itemName); 
       setResult(RESULT_OK, data); 
       finish(); 
      } 
     }); 
    } 
} 

物品類

public class Items 
{ 
    int id = 0; 
    int group = 0; 
    String name = ""; 
    int count = 0; 
    public Items(String name, int count) 
    { 
     this.count = count; 
     this.name = name; 
    } 
    public Items(String name, int count, int group) 
    { 
     this.group = group; 
     this.name = name; 
     this.count = count; 
    } 
    public Items(int id, String name, int group) 
    { 
     this.id = id; 
     this.group = group; 
     this.name = name; 
    } 
    public String getName() 
    { 
     return name; 
    } 
    public int getCount() 
    { 
     return count; 
    } 
    public int addCount() 
    { 
     count++; 
     return count; 
    } 
    public int reduceCount() 
    { 
     if(count > 0) 
     { 
      count--; 
      return count; 
     } 
     return count; 
    } 
    public int resetCount() 
    { 
     count = 0; 
     return count; 
    } 
    public void setGroup(int group) 
    { 
     this.group = group; 
    } 
    public int getGroup() 
    { 
     return group; 
    } 
} 

Ť當我運行 nameView1.setText(currItem.getName())時,他的數據本身正在傳遞給onActivity結果。 eiyhout有問題,

但試圖運行時 countView1.setText(currItem.getGroup()); 那是什麼時候發生的問題

哦!繼承人的錯誤日誌

11月4日至19日:09:56.219:W/dalvikvm(1970):線程ID = 1:螺紋與未捕獲的異常(組= 0x409c01f8)離開 11月4日至19日:09:56.258: E/AndroidRuntime(1970):致命例外:main 04-19 11:09:56.258:E/AndroidRuntime(1970):java.lang.RuntimeException:傳遞結果失敗ResultInfo {who = null,request = 0,result = - 1,data = Intent {(has extras)}} to activity {com.DanielFurnell.iTallyLite/com.DanielFurnell.iTallyLite.ITallyLiteActivity}:android.content.res.Resources $ NotFoundException:String資源ID#0x0 04-19 11 :09:56.258:E/AndroidRuntime(1970):at android.app.ActivityThread.deliverResults(ActivityThread.java:2980) 04-19 11:09:56.258:E/AndroidRuntime(1970):at android.app.ActivityThread.handleSendResult(ActivityThread.java:3023) 04-19 11:09:56.258:E/AndroidRuntime(1970):at android.app.ActivityThread.access $ 1100(ActivityThread.java:123) 04- 19 11:09:56.258:E/AndroidRuntime(1970):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1177) 04-19 11:09:56.258:E/AndroidRuntime(1970):at android .os.Handler.dispatchMessage(Handler.java:99) 04-19 11:09:56.258:E/AndroidRuntime(1970):at android.os.Looper.loop(Looper.java:137) 04-19 11 :09:56.258:E/AndroidRuntime(1970):at android.app.ActivityThread.main(ActivityThread.java:4424) 04-19 11:09:56.258:E/AndroidRuntime(1970):at java.lang.reflect .Method.invokeNative(Native Method) 04-19 11:09:56.258:E/AndroidRuntime(1970):at java.lang.reflect.Method.invoke(M ethod.java:511) 04-19 11:09:56.258:E/AndroidRuntime(1970):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784) 04-19 11: 09:56.258:E/AndroidRuntime(1970):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 04-19 11:09:56.258:E/AndroidRuntime(1970):at dalvik。 system.NativeStart.main(本地方法) 04-19 11:09:56.258:E/AndroidRuntime(1970):引起:android.content.res.Resources $ NotFoundException:字符串資源ID#0x0 04-19 11: 09:56.258:E/AndroidRuntime(1970):at android.content.res.Resources.getText(Resources.java:247) 04-19 11:09:56.258:E/AndroidRuntime(1970):at android.widget。 TextView中。setText(TextView.java:3473) 04-19 11:09:56.258:E/AndroidRuntime(1970):at com.DanielFurnell.iTallyLite.ITallyLiteActivity.onActivityResult(ITallyLiteActivity.java:73) 04-19 11:09: 56.258:E/AndroidRuntime(1970):at android.app.Activity.dispatchActivityResult(Activity.java:4649) 04-19 11:09:56.258:E/AndroidRuntime(1970):at android.app.ActivityThread.deliverResults ActivityThread.java:2976) 11月4日至19日:09:56.258:E/AndroidRuntime(1970年):... 11多個

我也不太清楚心不是什麼毛病項目的文本框爲我可以在ActivityResult之外爲其指定其他值 在此先感謝任何能夠幫助我解決此問題的人=)

回答

2
countView1.setText(currItem.getGroup()); 

可能是這條線有問題,getGroup返回int類型,它認爲是作爲字符串ID,所以你需要檢查返回值是否是有效的字符串ID或不是,如果你只想設置與getGroup返回的內容,請嘗試使用:

countView1.setText(currItem.getGroup()+""); 
+0

哇那麼簡單。謝謝!那很完美! – Raider00321 2012-04-19 02:22:23

0
name = (EditText)findViewById(R.id.newitemtxt); 

從點擊事件刪除此行並添加下面的按鈕旁邊= ...

,並嘗試..