从 Android 中的资源文件夹获取不同的整数值

Getting different integer value from resource folder in Android

我的屏幕上有一个 listView。如果设备是小屏幕 (320*480),我希望它的适配器填充 3 个项目,而其余的是 4 个项目。

我在适配器中的做法:

public class MyAdapter extends BindableArrayAdapter<SOMETHING>
{
    private static int MAX_DISPLAYED_ITEMS;

    public MyAdapter(Context context)
    {
        super(context);

        MyAdapter.MAX_DISPLAYED_ITEMS = context.getResources().getInteger(R.integer.list_size);
        Log.e("Test", "" + MAX_DISPLAYED_ITEMS);
    }

    @Override
    public int getCount()
    {
        return Math.min(MAX_DISPLAYED_ITEMS, super.getCount());
    }

我在 res/values-smallres/values-normal 下有 2 个文件,一个有 3 个,另一个有 4 个作为 list_size 的值,就像这样

<resources>
    <integer name="list_size">3</integer>
</resources>

我希望在 Galaxy Y (320*480) 上看到 3 个项目,而我看到 4 个项目。

如果知道如何解决此问题,我们将不胜感激。谢谢。

设备密度为 165dpi,这就是 mdpi 设备。分辨率是 320px x 480px,因为它的 mdpi 就是这个意思。该设备是 320dp x 480dp

并且从 Google 文档中您可以看到此设备是 Normal

xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp

对我来说,我更愿意使用 sw-xxx 例如(您需要检查值):

res/values => 3  
res/values-sw330 => 4

创建新的 .xml 文件时,请确保 select 可用限定符[下的屏幕尺寸] =17=]。然后根据您的需要编辑信息,它应该可以工作。

希望对您有所帮助!