无法获得ResourceID Mono-Android

时间:2012-11-06 19:00:57

标签: android .net

我有一个微调器,它根据列表中的选定项设置图像视图资源。问题是,当我去检索资源ID时,我总是找回0或未知成员。

选择了微调项目()

    private void spinner_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e) {
        Spinner spinner = (Spinner)sender;
        string toast = string.Format("{0}", spinner.GetItemAtPosition(e.Position));
        var imageView = FindViewById<ImageView>(Resource.Id.stateView);
        var resourceId = 0;

        resourceId = Resources.GetIdentifier(toast, "drawable", PackageName);
        imageView.SetImageResource(resourceId);
        Toast.MakeText(this, toast, ToastLength.Long).Show();
    }

我已经尝试过Resource.GetIdentifier(字符串,字符串,字符串)的每个组合,但我没有运气。

资源位于Resource.Designer.cs中,并且在调试时如果我将资源id的值编辑为Resource.Designer.Drawable中的项目ID之一,则该函数按预期工作。

有人知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

从未使用过Mono-Android,&amp;如果你已经尝试过这个,请道歉,但是......你确定你匹配的是Resources.GetIdentifier的正确语法吗?你有没有试过“drawable.png”(或任何扩展名)而不是“drawable”?

**编辑:

在常规Android上,我相信在视图到位之前资源不会膨胀,资源ID在屏幕上之前无效。为了设置imageView的源代码,我们使用静态的东西,如...

imageView.setBackgroundResource(R.drawable.splash_screen);

其中“splash_screen.png”是存储在res / drawable-small /

下的文件

不确定你是否加倍检查了你的文件名,并且它在正确的文件夹中?