I've defined a template to use to help typing out XML string definitions, which I've given the name "astring". In Content Assist, I've turned off XML Tag Proposals:
But I still get these two extraneous options "string" and "comment" coming up as the top suggestions when I hit Ctrl+Space
Am I doing something wrong? Why does unchecking "XML Tag Proposals" and changing the order have no effect?
update:
1) It seems like the extra XML tag proposals only appear in the Android XML editor, not the "standard" one
2) However I get extra template proposals coming up in both editors, until I type some extra characters to narrow down the name.
I am not sure if this is a bug or by design. I think a bug, because I would expect it work like the Java completion whereby it takes into account the characters already typed, as soon as I press the completion key.
So a workaround for the normal XML editor is to press Ctrl+Space before starting to type the name of your template. But you still get the Tag Proposals in the Android XML editor.
Should I enter this as a bug in Eclipse or in the Android plug-in, or both?
Are there any default XML templates (XML / XML Files / Templates) that might be similar to the tag proposals?
You can also check Windows > Preferences > General > Editors > File Associations and switch to a different XML editor of your liking.
As a last resort, try changing the locale to English/US temporarily to avoid a known bug and restart Eclipse. Visit Control Panel; Region/Language, Administrative (or Advanced); Language for non-Unicode Programs; Change system locale.
Related
I program android apps and i have one annoying feature in eclipse that i don't know how to turn off. I want eclipse to auto fill android:textStyle and give me more options like "bold", "italic" and not auto fill android:textStyle="" without giving me option to choose like mentioned above. Please be specific and repply ASVP. Please give me instructions like go to file->open... and i have eclipse 4.2.1 with ADT Version: 20.0.3.v201208082019-427395 THANKS
The auto fill you are describing is called Content Assist. You don't need to change the way it works, you simply need to learn more about it: You can trigger this method manually by pressing Ctrl+Space at any time.
On a new line in your View's XML type: textst and press Ctrl+Space to get:
android:textStyle=""
While the cursor is still between the quote marks press Ctrl+Space again to see the list of "normal", "bold", "italic".
Also you can quickly add more styles by using | symbol, for example android:textStyle="bold|", simply press Ctrl+Space to another say "italic"...
android:textStyle="bold|italic"
Added from comments
I don't know much about customizing Content Assist, but to reach its XML settings go to:
Window -> Preferences and then XML -> XML Files -> Editor -> Content Assist
You can find various settings here, including choosing the delay and prompt characters. If you use <a:="| this will cover the beginning of almost every line in an Android XML file. But you might want to be comprehensive by listing every character aAbBcC (etc) to open the Content Assist as much as possible...
Also you can make keyboard buttons with the HTML keyboard tag, for instance I made Bonzai! with:
<kbd>Bonzai!</kbd>
I'm using Eclipse 3.7 (Indigo). I have some very long string item definitions/values - e.g. over 1000 characters with a lot of embedded XML segments. The copy function works in the strings.xml tab where the XML characters are replaced by their multi-character equivalents but not the Resources tab. Whenever I select the definition/value text - either by using the cursor or using the shift-arrow keys, I do not activate the 'copy' or 'cut' commands.
Does anyone have the secret?
At the beginning i use to do everything on the resource tab , BUT then i started to have some problems that when i pasted the info it was not showing there, but it was being pasted on the resource node for some reason, so it make it my XML invalid.So i better started to do it on the XML tab, cause is faster also. So when you need to do something fast and pretty, you better do it on the XML tab, is less buggy.
UPDATE:
If your problem is just that you want the text with the values like ''' decoded. then you can just copy the text from the XML tab and go to this site and entered there and click decode and you will get your decoded version of your text.
What version of Eclipse do you have? I know some versions have been buggy for keyboard mapping and shortcuts.
Try looking at how those shortcuts are defined. See column "When" in Preferences > General > Keys (image).
Check if those shortcuts do not work for any editor (do they work for Java editor?). If they work for some editors, and not for another, then the problem might be that a plugin setting is causing them to perform another command. You could try disabling all unnecessary plugins.
EDIT:
I also found a bug report on the Eclipse website that affected Eclipse 3.5. It looks like the fix was to go to Window > Preferences > Java > Editor > Typing, then uncheck "Update imports".
Sometimes my code moves on its own or just disappears in the Eclipse XML editor.
When I highlight the affected code, the highlighted lines try to correct themselves. But when I scroll or drag the mouse in the opposite direction the code shifts again. In essence I will have repeating, missing, and broken lines of code being displayed from an otherwise error free file. The files affected do compile and if I close / re-open them this problem goes away, for the moment. Any ideas on what's happening?
Addition:
Jeff Axelrod provided a link to a new bug report with Google.
This bug is (finally) fixed in ADT 21. The fix is now available in ADT 21 Preview 9, posted a few minutes ago, here: https://android-review.googlesource.com/#/c/44936/1
The reason you get weird visual artifacts is that if a file contains broken DOS line endings (multiple carriage returns without a newline for each carriage return), Eclipse gets very confused. That's Eclipse issue https://bugs.eclipse.org/bugs/show_bug.cgi?id=375421 .
There are two parts to the fix:
(1) First, ADT was fixed such that it no longer introduces these \r\r sequences into the document. This makes sure that you don't get new documents which triggers the weird editing behavior, but it does not retroactively fix older documents with these line endings, so if you open them, you still get weird editing behavior.
(2) Second, there's a new lint check which looks for broken line endings in documents. This runs incrementally, so if you edit an XML file which has this problem, ADT will add an error marker for this problem -- along with a quickfix to perform surgery on the document to fix it.
In short:
Get ADT 21 Preview 9; run Lint on your projects and look for any complaints about files containing broken line endings, and if it finds any, apply the quickfix. From now on, further edits with the layout editor should keep the files consistently formatted.
FYI, the relevant fix is here: https://android-review.googlesource.com/#/c/44936/
Instructions for easily updating SDK Tools and the Eclipse ADT plugin are here: http://tools.android.com/preview-channel
-- Tor
(from the Android tools team)
After some tests, I have found that the option "Automatically format the XML edited by the visual layout editor" (in Preferences | Android | Editors) might be the culprit here.
With my tests, I've found that changing a property (such as the layout_gravity) while in Graphical Layout design mode always screw up the visual display of the file when I go back to the XML (text) mode when this option is ON but that I have no problem when it's off.
If you want to format the XML upon your return from the Graphical Layout design mode, simply use the shortcut Ctrl+Shift+F. Also, I didn't see any problem with using the option "Format on Save"; even when I use it in the Graphical Layout mode; so you can use Ctrl+S instead while you're still in the Graphical Layout mode to both save and format your XML.
I've tried other editors options like "Show range indicator" or "Use characters to show changes in vertical ruler" but I didn't see any difference in behavior with activating or de-activating these options.
Finally, to correct the visual display of the file when it's corrupt; I found that using the shortcut: Ctrl+A, Ctrl+C, Ctrl+V is a little easier than closing/reopening the file. This is equivalent to making a Select All, Copy, Paste; effectively copying the whole XML file over itself.
Still experiencing this bug on Juno (Eclipse 4.2.0, ADT r20).
My fix:
Go to Window -> Preferences -> Android -> Editors.
I have both "Format XML using the standard Android XML..." and "Use Eclipse settings for indentation...." checked. This solved the problem for me.
EDIT:
contain faster method, so it was bring to top:
Ctrl+F -> fill like that:
"Find" "\r\r\n"
"Replace" "\r\n"
Switch "Regular expression" to ON
hit the "Replace all" button
Ctrl+A
deselect text.
be happy =)
Original was here:
Just don't hide that issue, if you may fix it. Some times even closing the XML file didn't help.
For fix it let's look at the reason of it. First of all Turn On "Show Whitespace Characters" (Window > Preferences > General > Editors > Text Editors > Show whitespace characters )
Then back to your XML-file.
In scaled image you may see the difference of "\n"-symbol colors;
then just put cursor to that symbol, which is more dark.
look, two lines was selected 0o... that's may be the reason!
so just delete it, and press "Enter" or "Return" button for add "\n" symbol.
Hope it help you.
also you may find the other symbol of endline:
Just delete it too, and your XML will have a great look!
P.S. sorry for hyperlinks, i'm newbie and on SO i can't upload image or more than 2 links. so hope you'll get the point without additional pictures ;)
P.P.S. Thx to guy who vote up, now i can provide this with images.
I had the same difficulty and finally found the solution: Right click in the editor, select Source/Cleanup Document.
I had the same issue. The following steps were the solution. Link suggest its worked for others.
Go to Preferences -> keys
Unbind copy, paste, and cut (hit "apply", then "ok")
repeat step 1
Restore unbound commands from step 2 (I didn't restore cut, but I'm sure you'd be fine)
Notice there are 2 bindings for each of the 3 commands
Unbind secondary function for both copy and paste (leave ctl+c/ctl+v [copy/paste] bound)
At this point you should only have 2 bindings set to perform copy/paste (i.e., ctl+c/ctl+v)
Hit apply -> OK
This solution was found here.
When this bug appears with new versions of ADT (which are mandatory for fixing and where bug should not appear often) just use Lint tool to fix it..
Find it in Lint warnings and click yellow bulb icon in upper right corner of that Lint warnings list..
Hope it will help somebody
I have a current Android app that uses i18n via resources. res/values-es/strings.xml and so on. When I test it on a device with the language set to Espanol it pulls the correct resources, from the values-es file, but the accent characters are way out of whack.
For example, I want to use the lowercase o with an accent (ó). I have tried with the actual character in the strings.xml file (using the character map on Ubuntu to create the string) and with the entity, in either case it comes out like some other character set accent I don't recognize:
The same character looks perfect WITHIN strings.xml when using many different text editors. And the file is UTF-8 (tried recreating it with the Android "wizard" tool in Eclipse to make sure).
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="label_app_version">Versión</string>
</resources>
Now I've used French, and German before in other Android apps, with all sorts of accents, and haven't seen this problem, so I'm entirely confused at the moment. What am I doing wrong this time?
I finally solved this one. I was using a font and calling setTypeface earlier in the code. The font I'm using must not have the special characters needed for the other languages. I need to check to make sure my user's are using a locale that my font supports before setting the font.
I should have realized this and checked it earlier.
So the bottom line is this, if you get strange results with certain characters in different locales, make sure you're not using fonts that don't support those characters. Fall back to not using a font (don't call setTypeface) and test that way.
That diacritic is actually called a breve, common in many eastern european languages. I had the same problems before once. I even have a question here on SO. Since nobody solved the problem, it's worth the shot...
This isn't clear to me yet:
Does it happen only on this project? Did you try others? (maybe a project mistake)
Try including other language folders (try, say, values-fr). Do you have the same problem?
Did you try to build your app inside Eclipse? Did you try building manually on the command line?
Then, you could try:
Instead of the "ó" (here in PT we use the same), try \u00f3. Like: Versi\u00f3n. Do you get the proper latin small o with acute? Just to clear things.
Build your app using ant ($ ant release) manually on the command line. Report back the results.
This may help the guys here (who are much more experienced than I am) guess where the problem can be.
Best regards!
Check how the actual strings.xml file is stored.
In the file tree in Eclipse, right-click on the strings.xml file and select properties.
You will get a properties dialog for the file.
If not selected already, select the "Resource" line in the left column.
Check the "Text file encoding" area at the bottom.
It maybe selected as "default" or a specific encoding such as "UTF-8" selected.
Select the UTF-8 option. Save file. Clean & Build project (to re-gen resources) and then see if any changes.
See attached screenshot.
Suerte, Andrew
This is strange as it should not cause a problem. Maybe you should try to embed string into CDATA section, like this:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="label_app_version"><![CDATA[Versión]]></string>
</resources>
Is there any way to make Eclipse + Android SDK + ADT Plugin offer some sort of auto-complete in XML files if I hit CTRL+Space when my cursor is in a spot such as the ones marked with an * below.
<LinearLayout id* ... lay*>
The thing is that I think that the above was actually working already directly after the initial install - even though it of course never worked within style files.
<style name="ActionBarWrapper" parent="Fill_Parent.Vertical">
<item name="android:layout_height">36dp</item>
<item name="a*"
</style>
There is an icon in the eclispe toolbar to directly access the "new android xml file" wizard.
You could use IntelliJ IDEA instead of Eclipse, it has full auto-completion and works well for Android development.
http://www.jetbrains.com/idea/
The Community Edition fully supports Android, and is FREE
The latest ADT plugin (r9) does have partial auto complete feature in the layout xml.
for example, if you type ctrl-spacebar while the cursor is between 2 tags, you get the list of all avaliable tags (views and layouts). If your cursor is inside a tag, you get a list of all avaliable attributes.
First of all: Thanks for the good advice everybody. Not sure if the following should be an answer or a comment. Going for the answer because comments do not allow enough characters.
After trying out some eclipse plugins (like Rinzo XML Editor ) I found out that it actually worked for some files while it did not work at all for others. After some testing I am now under the impression that there is a difference between creating XML files via...
New > XML
and
New > Other > Android > Android XML File
I double checked that even when both files have exactly the same content (xml-version, encoding, namespace etc.) they behave differently with regards to auto-code-completion depending on the way of file-creation. I also checked the file properties but could not make out any significant differences. Obviously it must be something local or some meta stuff I am overlooking.
I think the different behavior is because when you create the file using "New->XML" the wizard opens the file using the default associated editor to xml content.
If you create a file using "New->Other->Android->Android XML File" I think the wizards tries to open the xml file using a specific xml editor, instead of the one you have configured as default, in this case Rinzo I guess.
In the second case why don't you try finding the xml file in either "Package Explorer" view or "Navigator" view, right click on the xml file and selecting Rinzo through the "Open With" option.