从XML文件

时间:2018-01-12 01:19:58

标签: java android xml android-studio

我遇到了问题,而且我不知道如何修复它:

我想在AndroidStudio中为结果启动一个活动,所以之前我使用的是startActivityForResult(intent,1);,一切正常。

但随着我的项目变得越来越大,很难跟踪已经使用过的requestCodes,所以我想把它们全部保存在一个地方。

因此我尝试了这个:

startActivityForResult(intent, R.integer.request_code_for_something);

xml-Tag看起来像这样:

<item name="request_code_for_something" type="integer"> 1 </item>

到目前为止,这么好。一切都正确加载,但当我达到&#34; startActivityForResult&#34; -Statement时,抛出以下异常:

java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode
 at android.support.v4.app.BaseFragmentActivityApi14.checkForValidRequestCode(BaseFragmentActivityApi14.java:79)
 at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:717)
 at company_name.project_name.someClass.someFunction(someClass.java:565)
 at android.view.View.performClick(View.java:5640)
 at android.view.View$PerformClick.run(View.java:22455)
 at android.os.Handler.handleCallback(Handler.java:751)
 at android.os.Handler.dispatchMessage(Handler.java:95)
 at android.os.Looper.loop(Looper.java:154)
 at android.app.ActivityThread.main(ActivityThread.java:6165)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)

我是否遗漏了某些东西,或者说这是不可能的?

编辑:我知道我不能使用高于32.767的值,但这并不能解决问题。

提前致谢。

1 个答案:

答案 0 :(得分:1)

R.integer.request_code_for_something不会返回xml中的整数使用集。相反,它为您提供R class中指定的整数。

public static final int request_code_for_something=0x7f040003;

获取资源值。使用getResource()

getResources().getInteger(R.integer.request_code_for_something)