6

あなたが私を助けてくれることを願っています.私はすでに自分のケースを調査しましたが、良い答えが見つかりませんでした. 変数の内容を既存のすべてのリソースの名前と比較したい (可能であれば、描画可能なリソースのみ)。

要するに、変数の文字列の内容をすべてのリソース名のリストと比較する方法、描画可能なリソースのみを優先する方法は? 言い換えれば、すべてのリソース名のリスト (文字列を含む) を取得する方法、優先的に描画可能なリソースのみを取得する方法は?

ケース: 特定のタイプに基づいてシンボルを表示したい。この型は SQLite データベースから取得されます。ドローアブル リソースとして格納されているシンボルは多数あり、それらはすべて可能なタイプのように名前が付けられています。データベースに保存されているすべてのタイプについて、フィッティングシンボルをリストに表示したいと考えています。等しいかどうかは、変数「type」とすべての (描画可能な) リソースの名前を含むリストを (contains メソッドを介して) 比較することによって確認する必要があります。

例: データベースには、"A"、"B"、および "C" という名前の型があります。ドローアブル リソース フォルダーには、「A」、「BX」、および「S」という名前のグラフィックがあります。比較すると、リスト内でタイプ「A」のみが適切なドローアブル シンボル「A」に接続されていることがわかります。タイプ「B」と「C」には名前付きのドローアブル リソースがない可能性が高いため、シンボルを表示すべきではありません。

私の質問を理解していただければ幸いです。ご協力いただきありがとうございます。

4

2 に答える 2

16

言い換えれば、すべてのリソース名のリスト (文字列を含む) を取得する方法、優先的に描画可能なリソースのみを取得する方法は?

これはおそらくあなたが望むものです:

Field[] fields = R.drawable.class.getFields();
String[] allDrawablesNames = new String[fields.length];
for (int  i =0; i < fields.length; i++) {           
    allDrawablesNames[i] = fields[i].getName();
}
于 2012-12-11T13:20:54.487 に答える