0

リストから選択したアイテムに基づいて画像ビュー リソースを設定するスピナーがあります。問題は、リソース 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(string, string, string) のすべての組み合わせを試しましたが、うまくいきません。

リソースは Resource.Designer.cs にあり、デバッグ時にリソース ID の値を Resource.Designer.Drawable のアイテムの ID の 1 つに編集すると、関数は期待どおりに機能します。

誰かが私が間違っていることを知っていますか?

4

1 に答える 1

0

Mono-Android で作業したことはありません。既にこれを試した場合はお詫びしますが、 Resources.GetIdentifier の正しい構文と一致していると確信していますか? 「drawable」の代わりに「drawable.png」(または拡張子)も試しましたか?

**編集:

通常のAndroidでは、ビューが配置されるまでリソースは膨らまないと思います.resourceIDは画面に表示されるまで有効ではありません. imageView のソースを設定するには、次のような静的なものを使用します ...

imageView.setBackgroundResource(R.drawable.splash_screen);

ここで、「splash_screen.png」は res/drawable-small/ に保存されているファイルです

ファイル名を再確認したかどうか、正しいフォルダーにあるかどうかわかりませんか?

于 2012-11-06T19:25:18.670 に答える