Lo and behold, R.xml.class.getDeclaredFields() was picking up Android.R, because I was not in the activities package. I guess there are no xml resources in Android.R. So there is some hope for this method yet.
I don't think the AssetManager will work, though. It's returning "images", sounds, and "webkit" for empty path, and nothing for "xml" path. Nathan On Feb 1, 6:54 pm, Lance Nanek <[email protected]> wrote: > Weird, I dropped a settings.xml in res/xml in a quick test project and > R.xml.class.getDeclaredFields() worked just fine. I tried running from > Eclipse and also exporting to an APK, installing, and running that - > both worked. Tested on an Android 1.6 G1 phone and an Android 2.1 > emulator. Maybe there are different ways to build that actually do > strip them out? > > Screenshot:http://imgur.com/yWU3I.png > > Code (http://pastebin.com/f4f1ee8bd): > public class TestReflectionOnR extends Activity { > @Override > public void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > setContentView(R.layout.main); > TextView text = (TextView) findViewById(R.id.text_view); > text.append("field count: " + R.xml.class.getDeclaredFields > ().length + "\n"); > for (Field f : R.xml.class.getDeclaredFields()) { > f.setAccessible(true); > try { > text.append(f.getName() + ": " + f.get(null) + "\n"); > } catch (IllegalArgumentException e) { > throw new RuntimeException(e); > } catch (IllegalAccessException e) { > throw new RuntimeException(e); > } > } > } > > } > > On Feb 1, 6:19 pm, Nathan <[email protected]> wrote: > > > > > How does one go about listing the resources that are available in an > > application? > > > For example, I would want to find the names of all files under /res/ > > xml. > > > Reflection on the R class didn't seem to work since the identifiers > > are static constants. R.xml.class.getDeclaredFields() doesn't return > > any fields. > > > The AssetManager didn't seem to work either because these are not raw > > assets. > > > Does anyone have ideas or examples? -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

