2012-04-19 3 views
1

im, пытающийся отправить строку из одного из моих действий в основное действие группы, но у меня небольшая проблема. Я пытаюсь создать объект в части 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; 
    } 
} 

T он сам передается в onActivity Result, когда я запускаю nameView1.setText (currItem.getName()); eiyhout a problem,

но при попытке запустить countView1.setText (currItem.getGroup()); эта проблема возникает если

oh! Heres журнал ошибок

04-19 11: 09: 56,219: Вт/dalvikvm (1970): ThreadId = 1: поток, выходящий с неперехваченного исключением (группа = 0x409c01f8) 04-19 11: 09: 56,258: E/AndroidRuntime (1970): FATAL EXCEPTION: main 04-19 11: 09: 56.258: E/AndroidRuntime (1970): java.lang.RuntimeException: Ошибка предоставления результата ResultInfo {who = null, request = 0, result = - 1, data = Intent {(имеет дополнительные функции)}} для активности {com.DanielFurnell.iTallyLite.ComallyLiteActivity}: android.content.res.Resources $ NotFoundException: Идентификатор ресурса строки # 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 (собственный метод) 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 (Native Method) 04-19 11: 09: 56.258: E/AndroidRuntime (1970): вызвано: android.content.res.Resources $ NotFoundException: Идентификатор ресурса строки # 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) 04-19 11: 09: 56,258: E/AndroidRuntime (1970): ... 11 более

Я также совершенно уверен, что там не ничего плохого в текстовом поле пункта как Я могу присвоить ему другие значения за пределами ActivityResult Спасибо заранее всем, кто может мне помочь в этом вопросе =)

ответ

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

может быть эта линия имеет проблему, getGroup вернуть int тип, он думает, что это как идентификатор строки, , поэтому вам нужно проверить, что возвращаемое значение является допустимым строковым идентификатором или не, если вы хотите установить контент только с getGroup, попробуйте использовать:

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

wow это простой. Благодаря! это было прекрасно! – Raider00321

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

удалить эту строку из события щелчка и добавить кнопку ниже рядом = ...

и попробовать ..

Смежные вопросы