我有一个微调器,它根据列表中的选定项设置图像视图资源。问题是,当我去检索资源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之一,则该函数按预期工作。
有人知道我做错了吗?
答案 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 /
下的文件不确定你是否加倍检查了你的文件名,并且它在正确的文件夹中?