Android :: Externalize Strings In Source Files To Strings.xml Automatically?
Sep 20, 2009Is there a way to externalize all the strings in the source files to strings.xml automatically?
View 2 RepliesIs there a way to externalize all the strings in the source files to strings.xml automatically?
View 2 RepliesDear all, I'm making a simple file decoder for Android 2.2 that needs to find the filename of the encoded file from a header. This filename should then be used as the filename for the decoded file (as you would expect).The filename is identified by the substring name=, so the actual name starts 5 places after that. The line is read by a BufferedReader and temporarily stored in currLine.For some reason I can't understand nor find on the web, Strings do not always seem to be Strings.Gives no output file, nor an IO exception. The string is parsed properly though: from the System.out debugging lines.
View 1 Replies View RelatedI've got a map of about 500 entries. Strings are all very short (less than 5 chars).Its read-only data I want to read once at app-startup. What's the best way to store this so that loading this data is fast?I've tried storing the data in a CSV in res/raw but this takes about 700ms to parse on my N1, so I'm hoping there's a faster way.
View 8 Replies View RelatedIs it possible to reference other strings inside of strings.xml ?
Something of the form...
(If it did exist, there would of course be problems of circular, infinite definitions, etc. to beware of).
by which the resource "bar" becomes an alias for the resource named "foo".What I would for my app is a possibility to combine an existing resource prefix with different suffixes,where the resource "bar" would yield the string "foobar". Its clear that '+' doesn't work here but is there some other option to achieve such a string concatenation, so that one could define a bunch of string resources that have a common prefix?I realize of course that I could do such resource string concatenation at runtime but defining them statically in the resources would seem so much more elegant and simpler.
View 1 Replies View RelatedI have an application which we are writing to be both a MIDP application using LWUIT as well as an Android application.
We attempt to share as much common code as possible between the two platforms.
I'd also really like to be able to share the localization strings when possible.
Reading through the docs in:
http://developer.android.com/guide/topics/resources/resources-i18n.html
It looks like Android uses an XML format to specify name-value pairs, e.g.:
{{{ <string name="go_online_message">You are currently offline. Go online? This will use the data network</string> }}}
Is it possible to have an external strings.xml or something like that?I'd like to translate my application into several different languages, but the apk would become to large if I include all languages.I would instead like to be able to load languages on demand (from an external URL) and store them on the SD card.Is that possible in any way? How could I in that case use the new language?
View 5 Replies View RelatedIn my XML values strings code, I have a string with some text that I want to have only a few of the words in color. I also want to have a new line for some of the text.
I can do things like: < b> my bold text < /b> and that works (leading space added for this post).
I try to tag the text with color but no color shows up and there are no errors.
CODE:.............
I also try adding a new line - I've tried things like:
< LF> some text, space at beginning only for this post < /LF>
< CR> this didn't work either < /CR>
< p> some text, space at beginning only for this post < p>
But, no new paragraph / new line, carriage rtn happens.
Is there a way to loop through the values of strings.xml?
View 2 Replies View RelatedI want to implement a "Settings" section in my application, and I want that when the user selects whatever, one of the strings from string.xml will change its value according to the user selection. Is this possible at all? any ideas on how to implement it?
View 4 Replies View RelatedI am trying to create a information based application, I have 92 subjects, for these subjects I have 92 map locations and maybe as much as 400 url links. Currently I have created a class for each map location and a class for each url link, but this would mean I would have in excess of 500 classes, so what I want to do is split the subjects in four catergories ie. listview of about 23 in four tabs which I have done and create a class that gets the url based on the selection the use makes and do the same for the map locations.Do I need to put these in a xml using the id method and how do you call individual entries, i.e. would I need 500 Android:id is there an easier way?
Im new to android and java but moving along at full speed. My lack of experience is making some elementary tasks too repetitive.For example I want to be able to loop through the following snipit of code the problem is I want "i" replace the number "1" in g1m0+=1; so through each iteration g1m0 would become g2mo.I know this is a simple to the novices out there can you please give me some insight to shorten up my code here..
View 9 Replies View RelatedI have a strange error that I can't understand. I have this code: if (VersionsKoll == Ver) { }
View 5 Replies View RelatedI have a few strings which I need to translate and display.Those strings are in variables. I have the translation in the strings.xml file.
View 1 Replies View RelatedMaybe some of you has an application with quotations or jokes or something. I would like to make a similar. So how can I get the i. element of my string array (which is in arrays.xml)? I don't want to load the whole array in a String[], because it can be too big. Or it's not a good idea to put them into arrays.xml? How do you handle thousands of strings?
View 24 Replies View RelatedI would like to write a program to parse the nodes of strings.xml and then get the content and attribute"name". Can anyone has experience on it?
View 3 Replies View RelatedI'm trying to parse a web service response using SAXParser and get certain values, store them into an arraylist, then display them in a listview. Example XML being returned from web service:
<ArrayOfStrings>
<string>value</string>
<string>value</string>
<string>value</string>
</ArrayOfStrings>
Here is my SAXHandler class:
public class SAXHandler extends DefaultHandler {
private boolean outertag = false;
private boolean mytag = false;
ArrayList<String> alist;
public ArrayList<String> getList(){
return this.alist;
} @Override
public void startDocument() throws SAXException {
} @Override
public void endDocument() throws SAXException{
} //@Override
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
if (localName.equals("ArrayOfString")){ this.outertag=true;
}else if (localName.equals("string")){ this.mytag=true;
} }
@Override
public void characters(char ch[], int start, int length) {
if (this.mytag){ String s = new String(ch, start, length);
alist.add(s);
} }
@Override public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
if (localName.equals("ArrayOfString")){ this.outertag=false;
}else if (localName.equals("string")){ this.mytag=false;
} } }
And here's my method calling and returing my web service:
try{ URL url = new URL("xxxxxxx");
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
SAXHandler SAXHandler = new SAXHandler();
xr.setContentHandler(SAXHandler);
xr.parse(new InputSource(url.openStream()));
ArrayList<String> stateList = SAXHandler.getList();
aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, stateList);
RESTlist.setAdapter(aa);
I keep getting an exception and I don't know why. Can anyone give me a hand?
Logcat:
06-21 20:10:47.901: ERROR/AndroidRuntime(472): Uncaught handler: thread main exiting due to uncaught exception
06-21 20:10:47.950: ERROR/AndroidRuntime(472): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pa.passammain/com.pa.passammain.RESTtest}: java.lang.NullPointerException: println needs a message
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at android.app.ActivityThread.access$2100(ActivityThread.java:116)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at android.os.Handler.dispatchMessage(Handler.java:99)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at android.os.Looper.loop(Looper.java:123)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at android.app.ActivityThread.main(ActivityThread.java:4203)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at java.lang.reflect.Method.invokeNative(Native Method)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at java.lang.reflect.Method.invoke(Method.java:521)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at dalvik.system.NativeStart.main(Native Method)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): Caused by: java.lang.NullPointerException: println needs a message
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at android.util.Log.println(Native Method)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at android.util.Log.e(Log.java:208)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at com.pa.passammain.RESTtest.onCreate(RESTtest.java:82)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
06-21 20:10:47.950: ERROR/AndroidRuntime(472): ... 11 more
After editing how my error is displayed in my try/catch i'm not longer getting an exception, but just a blank screen. Here is what my logcat is displaying:
06-21 20:22:00.330: WARN/System.err(542): java.lang.NullPointerException
06-21 20:22:00.352: WARN/System.err(542): at com.pa.passammain.SAXHandler.characters(SAXHandler.java:45)
06-21 20:22:00.352: WARN/System.err(542): at org.apache.harmony.xml.ExpatParser.text(ExpatParser.java:166)
06-21 20:22:00.362: WARN/System.err(542): at org.apache.harmony.xml.ExpatParser.append(Native Method)
06-21 20:22:00.371: WARN/System.err(542): at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:506)
06-21 20:22:00.371: WARN/System.err(542): at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:467)
06-21 20:22:00.371: WARN/System.err(542): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:329)
06-21 20:22:00.381: WARN/System.err(542): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:286)
06-21 20:22:00.381: WARN/System.err(542): at com.pa.passammain.RESTtest.onCreate(RESTtest.java:71)
06-21 20:22:00.391: WARN/System.err(542): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
06-21 20:22:00.391: WARN/System.err(542): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
06-21 20:22:00.401: WARN/System.err(542): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
06-21 20:22:00.401: WARN/System.err(542): at android.app.ActivityThread.access$2100(ActivityThread.java:116)
06-21 20:22:00.410: WARN/System.err(542): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
06-21 20:22:00.410: WARN/System.err(542): at android.os.Handler.dispatchMessage(Handler.java:99)
06-21 20:22:00.420: WARN/System.err(542): at android.os.Looper.loop(Looper.java:123)
06-21 20:22:00.420: WARN/System.err(542): at android.app.ActivityThread.main(ActivityThread.java:4203)
06-21 20:22:00.420: WARN/System.err(542): at java.lang.reflect.Method.invokeNative(Native Method)
06-21 20:22:00.430: WARN/System.err(542): at java.lang.reflect.Method.invoke(Method.java:521)
06-21 20:22:00.430: WARN/System.err(542): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
06-21 20:22:00.442: WARN/System.err(542): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
06-21 20:22:00.442: WARN/System.err(542): at dalvik.system.NativeStart.main(Native Method)
Currently I'm using a HashMap to map the strings to int and the int values need to be frequently accessed. I'm looking for a better way to do this if possible with minimal object creation, and preferable being able to store the values as primitive ints without wrapping them with the Integer class. (Basically, the reverse of the SparseArray's int->object mapping.)
View 4 Replies View RelatedI have several projects which contain the same strings. Is there a way to share the strings.xml file between projects? I have a library project where I put shared .java code which has a strings.xml, but is the data in the library strings.xml added to the including project's strings.xml at build time?
View 2 Replies View RelatedI am supporting search in my app, I'd like to display a unique hint in the search box depending on what activity is being viewed.
To that end, I have a two different searchable.xml files in my xml folder:
CODE:..........
When I reference searchable.xml, everything works as expected. The second searchable xml file has the same contents as the first, but this does not work:
CODE:............
Pressing the search key does not display the search box. If I just reference the first searchable instead, it works fine:
CODE:.....................
Again, both have the same content. It looks like there is a dependency on the name "searchable.xml" within android?
If we're not allowed to have searchables named anything but searchable.xml, how do we specify different hint strings for different activities?
For example:
CODE:..............
I wrote the following in the strings.xml file:
<string name="game_settings_dragNDropMove_checkBox">Move by Drag&Drop</string>
I got the following error:
The reference to entity "Drop" must end with the ';' delimiter.
How can I write character & in the strings.xml?
I've just tracked down a weird bug in our app where SharedPreferences were failing between power cycles of the phone.
It turns out that one of the strings we were saving had an "&" in it. When I look at the xml that is being persisted I see that this is being encoded as && instead of just &
This means that when you come to read the settings back you don't get any values at all. Is this a known issue? I see lots of posts about preferences dissappearing, but nothing about this.
What is translatable attribute translatable="false" means?
View 1 Replies View RelatedHow do I remove strings from / obfuscate a compiled binary? The goal is to avoid having people read the names of the functions/methods inside.
It is a dynamic library (.so) compiled from C++ code for Android with the NDK tools (includes GCC)
I compile with -O3 and already use arm-eabi-strip -g mylib.so to remove debugging symbols, but when I do strings mylib.so all the names of the functions/methods are still readable.
Code...
I don't know how to get the right element by onItemClick. the var i is always -1
I am displaying the alert dialog box using below code...
But I want to display the icons with that names.For x in above code i am taking email and phone.emailIcon comes with email name.
For this what can i do give me some suggestions.
I have two activities. I want to pass array strings from one activity to another. I am using putStringArray and getStringArray functions. But still its not working. Could you please let me know how can I do it? Is there any other way to do it?
View 3 Replies View RelatedIs there anywhere a summary of Build.MODEL strings for different Android handset models? Something like:"Hero" - HTC Hero "ERA G2 Touch" - branded HTC Hero "T-Mobile myTouch 3G" - branded HTC Magic "GT-I5700" - Samsung Galaxy I'm curious what is the percent of rooted devices among my app users, but sometimes is hard to tell which device is which (and yes, I know rooted firmware can mimic vanilla one, it just usually doesn't).
View 1 Replies View RelatedIs there any way to pass values(strings or bundles) to another application while calling it via intents, and also return some information (mostly string)?
View 3 Replies View RelatedI am using Eclipse 3.6.0, when I try to edit the strings.xml the Eclipse show me NullPointerException.
Any solution or advice how to handle this?