在这种情况下如何设置R.string.resource_name

时间:2020-01-10 13:31:16

标签: java android r string

我有这样的代码

if(POS>=5){
    Toast.makeText(SubActivity.this,R.string.last,Toast.LENGTH_SHORT).show();
 }else {
     POS += 1;
     fillDetails(POS);
 }

我想在if(POS>=5)的{​​{1}}中获得“ 5”

我在strings.xml

strings.xml

我尝试过这些

<string name="lastarticle">5</string>

但是他们都不起作用。我想我想念一些东西,但我不知道那是什么?

2 个答案:

答案 0 :(得分:3)

您应该将该字符串转换为int,然后将其与POS进行比较:

if(POS >= Integer.parseInt(getString(R.string.lastaricle))){
     Toast.makeText(SubActivity.this, R.string.last, Toast.LENGTH_SHORT).show();
} else {
     POS += 1;
     fillDetails(POS);
}

答案 1 :(得分:2)

integers.xml用作整数引用:https://developer.android.com/guide/topics/resources/more-resources#Integer

然后无论使用strings.xml还是integers.xml值都会生成引用到R.string.lastaricleR.integer.lastaricle的整数,因此要获取值,您需要从https://developer.android.com/reference/android/content/res/Resources

if(POS> = getString(R.string.lastaricle))

if(POS> = getResources()。getString(R.string.mess_1))

if(POS> = this.getString(R.string.resource_name))

这些无效,因为您将StringInteger进行了比较

integers.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer name="lastaricle">5</integer>
</resources>
    if (POS >= getResources().getInteger(R.integer.lastaricle)) {
        Toast.makeText(SubActivity.this, R.string.lastaricle, Toast.LENGTH_SHORT).show();
    } else {
        POS += 1;
        fillDetails(POS);
    }