我有一个名为 MyPrimaryClass 的类,该类在按下时有一个按钮女巫,它使用 myClassForResult 类创建一个 Intent。
我用它来启动它:
startActivityForResult(myIntentOfMyClassForResult, ACTIVITY_EDIT_BTEXT);
MyPrimaryClass 和 myClassForResult 都扩展了 Activity。
因此,当我在 myClassForResult 中调用 Toast.makeText 时,使用 R.string.my_resource_string 的文本参数,它给了我强制关闭!
我试过这个:
Context c = myClassForResult.this;
Toast toast = Toast.makeText(c,
c.getResources().getString(R.string.my_resource_string),
Toast.LENGTH_SHORT);
toast.show();
还有这个:c = getApplicationContext()
还有这个:c = getBaseContext()
还有这个:
Context c = MyPrimaryClass.this;
Toast toast = Toast.makeText(c,
R.string.my_resource_string,
Toast.LENGTH_SHORT);
toast.show();
如果我使用内联字符串,例如“我的吐司文本!”,它就可以工作。但我需要从资源中获取一个字符串。
-问题解决了:
为了解决这个问题,我将 Toast 的持续时间更改为 Toast.LENGTH_LONG
字符串R.string.my_resource_string值为“标题为空”
当我将其值更改为“标题”时,它工作正常,所以我猜这个字符串对于 Toast.LENGTH_SHORT 持续时间来说太长了。
但是当我将持续时间更改为Toast.LENGTH_LONG时,我可以使用长字符串。
Context c = MyPrimaryClass.this;
Toast toast = Toast.makeText(c,
R.string.my_resource_string,
Toast.LENGTH_LONG);
toast.show();