私のアクティビティの 1 つからグループのメイン アクティビティに文字列を送信しようとしていますが、小さな問題があります。コードの onActivityResult 部分でオブジェクトを作成しようとしています(これはうまくいくようです)。しかし、このクラスから getName() 以外のメソッドにアクセスしようとすると、リソースが見つからないという例外が発生します。解決策は簡単だと確信していますが、かなり調べた後も引き続き解決できません。コードはこちらです....
主な活動
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);
}
}
}
追加アクティビティ
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 Result に渡されます。問題があっても、
しかし、countView1.setText(currItem.getGroup()); を実行しようとすると、問題が発生したとき
おー!エラーログはこちら
04-19 11:09:56.219: W/dalvikvm(1970): threadid=1: キャッチされない例外で終了するスレッド (group=0x409c01f8) 04-19 11:09:56.258: E/AndroidRuntime(1970): 致命的な例外: メイン04-19 11:09:56.258: E/AndroidRuntime(1970): java.lang.RuntimeException: 結果の配信に失敗しました ResultInfo{who=null, request=0, result=-1, data=Intent { (エクストラあり) }}アクティビティへ {com.DanielFurnell.iTallyLite/com.DanielFurnell.iTallyLite.ITallyLiteActivity}: android.content.res.Resources$NotFoundException: 文字列リソース 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): android.app.ActivityThread.handleSendResult(ActivityThread.java:3023) 04-19 11: 09:56.258: E/AndroidRuntime(1970): android.app.ActivityThread.access$1100(ActivityThread.java:123) 04-19 11:09:56.258: E/AndroidRuntime(1970): android.app.ActivityThread$H.handleMessage(ActivityThread.java:1177) 04-19 11:09:56.258 : E/AndroidRuntime(1970): android.os.Handler.dispatchMessage(Handler.java:99) 04-19 11:09:56.258: E/AndroidRuntime(1970): android.os.Looper.loop(Looper. java:137) 04-19 11:09:56.258: E/AndroidRuntime(1970): android.app.ActivityThread.main(ActivityThread.java:4424) 04-19 11:09:56.258: E/AndroidRuntime(1970) : java.lang.reflect.Method.invokeNative(Native Method) 04-19 11:09:56.258: E/AndroidRuntime(1970): java.lang.reflect.Method.invoke(Method.java:511) 04- 19 11:09:56.258: E/AndroidRuntime(1970): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 04-19 11:09:56.258: E/AndroidRuntime(1970) :com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 04-19 11:09:56.258: E/AndroidRuntime(1970): 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): Android. content.res.Resources.getText(Resources.java:247) 04-19 11:09:56.258: E/AndroidRuntime(1970): android.widget.TextView.setText(TextView.java:3473) 04-19 11: 09:56.258: E/AndroidRuntime(1970): com.DanielFurnell.iTallyLite.ITallyLiteActivity.onActivityResult(ITallyLiteActivity.java:73) 04-19 11:09:56.258: E/AndroidRuntime(1970): android.app.Activity で.dispatchActivityResult(Activity.java:4649) 04-19 11:09:56.258: E/AndroidRuntime(1970): android.app.ActivityThread で。deliveryResults(ActivityThread.java:2976) 04-19 11:09:56.258: E/AndroidRuntime(1970): ... 11 もっと見る
また、ActivityResultの外で他の値を割り当てることができるので、アイテムのテキストボックスに問題はないと確信しています。