我有一个名为MyPrimaryClass的类,这个类有一个按钮,当按下时,会创建一个带有myClassForResult类的Intent。
我使用以下代码来启动它:
startActivityForResult(myIntentOfMyClassForResult, ACTIVITY_EDIT_BTEXT);
MyPrimaryClass和myClassForResult都是Activity的扩展类。
所以,当我在myClassForResult中调用Toast.makeText并使用R.string.my_resource_string作为文本参数时,它会弹出“Force Close”错误提示框!
我已经尝试过以下方法:
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 的持续时间改为 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();