2012-11-06 34 views
0

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

微调项目选择()

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

从未与Mono-Android合作过,&道歉,如果您已经尝试过,但是......您确定您正在为Resources.GetIdentifier匹配正确的语法吗?你是否也试过“drawable.png”(或任何扩展名)而不是“drawable”?

**编辑:

在普通的Android,相信资源不充气,直到观点是到位,RESOURCEID是无效的,直到他们在屏幕上。为了设置的ImageView源,我们用静态的东西像...

imageView.setBackgroundResource(R.drawable.splash_screen); 

其中“splash_screen.png”正在RES /绘制小型存储在文件/

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

+0

我会试一试,谢谢 –