我有这样的代码
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>
但是他们都不起作用。我想我想念一些东西,但我不知道那是什么?
答案 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.lastaricle
或R.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))
这些无效,因为您将String
与Integer
进行了比较
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);
}