Android Studio unknown keycode - keymaps don't work with letters - android

That's what I have now: fresh installed Fedora 21, GNOME3 and Android Studio. Two KB languages: ru and en. Whatever is done further is done with "en" input language chosen. System language is Russian.
What I do: try any Ctrl or Ctrl-Alt or Ctrl-Shift shortcuts with any letter. No result at all. Ctrl-Alt-L should reformat code, but does nothing, same thing with Ctrl-Shift-F, for example. Meanwhile, combo with any number or +/-/= sign or arrows works well.
So what can be wrong? When I go to Setting->Keymaps and try the button "Find Actions by shortcut", press a combo there, it finds non-letter maps very well, but as I press combo with any button, it outputs, for example, "Ctrl+Alt+ unknown keycode 0x0"
Got a terrible headache with this... Any ideas?

Looks like you have non-US layout as a default one. Java doesn't like it and generates events with invalid keycodes. I'm not sure we can develop an easy workaround for the issue. As a countermeasure you can assign US a primary layout.

Related

Is there a way to search by string previews in Android Studio?

I have a class which contains alot of string resources. I would like to search (Ctrl + F) particular string preview. For example
getString(R.string.transfer_label);
which is shown in intellij IDEA as string resources value
"TRANSFER"
So when i press CTRL+F and type "TRANSFER" naturally nothing happens. Is there any other shortcut that allows it? or any existing plugin?
Edit: I am looking for solution which works like CTRL+F one. I mean you type in something and it instantly moves you to place in code where its used. Making it very quick.
I normally go in my strings.xml and use "Find usage" (Alt + F7) on a string resource. This is the only way I know.
If your key Map is Default- cntrl+shift+F
If you want change the keys and key maps go here
Android Studio -> File ->Settings > KeyMap
Please find the below image for reference :
You can search in search bar what you are looking for

confusing characterset displaying issue in AndroidStudio

I have an Android-Project on 2 pc's . A & B (2 computers).
Same do have the same content. (Updated to Head)
In one instance I get different characters displayed then in the other:
computer A, which characters are displayed correctly:
computer B, which has weired placeholders.:
Any help, what to setup for B, so it shows the corect characters ?
You just need to click that Spinner (ISO-8859-1) to make it UTF-8 .You need to copy and agai paste the right content.then it will start showing correct ones again :
Maybe it is related with the file encodings, that could be different in both computers.
You can check at File > Default settings > File Encodings.

gender-dependent locale String resources Android

I'm implementing an app in Hebrew, and I like it to be user-friendly in such way that at the first time the user logs on, there will be a question "Are you a male or a female?". After answering this question, I want most of the strings to be gender-dependent
(E.g. in Hebrew the question "Would you like some coffee?" will be
תרצה לשתות קפה?
for a male, and -
תרצי לשתות קפה?
for a female)
Meanwhile my app supports English and Unisex-Hebrew Locales, so I'm using String resources (like R.string.somevalue) and I know how to handle values-he and values-en.
Let's say I can ask for is_male() and is_locale_hebrew() at anytime, I saw this answer but it won't help my case since there are a hell lot of strings in my working-already app and I want the solution to add only xml files (hopefully) with the less needed change in my "Activity"s code.
I thought maybe overloading the parser that looks for the xml files will do the magic, but I have no clue where to start from.
My question divides into two parts:
A. How can I implement gender-dependnt String-resources?
B. (Opt) Some of the string-resources are good as unisex right now, is there any option to avoid copying those resources to the 2 new gender-dependent files and just add a default behavior of "if you don't find a string resource at values-he-male search for it in values-he"?
Thanks in advance!
Re'em
Same question for me. I plan to have (in addition to the default string.xml in English) iw (for male) and iw_fe (for female).
When the user selects his/her gender, I will change the locale (Set Locale programmatically )
As for using default values in Hebrew, I am still clueless. For now I will simply copy the Hebrew XML and change the required entries, leaving all the rest intact.
HTH
Noam

Android: resource String automatic generation

I'm new to Android. When I add a button/views in Graphical layout it adds the label text this way- android:text="Button" . Why doesnt it add "android:text="#string/my_label" and add a string resource in string.xml file. Can't it be done automatically in eclipse?
I have searched a lot but I have not get any automated way to add a string to the resource file But This will save your time a lot IMHO.
Select a String, click Refactor --> Android --> Extract Android String.
Thanks to Brent Hronik. CTRL-1 on Windows works fine.
Because you don't have to use the #string resource. The purpose of the #strings resource is to make it easier to change elements about your code. For example, if you are using your application title in mutliple places, let's say in every dialog box, then if you change the title you would have to change it in all the instances that the app title is being display. So in this instance the #string/App_Title could be set to "My Program" and all of the dialog boxes can reference that. If you change the title to "Hello World" then all of these are changed. The #strings resource, while eclipse tries, doesn't have to be used for every string. Not using it is the equivalent to hard coding the value. There are plenty of reasons for and against using #string for everything.
I am not sure if there is a setting in eclipse that will automatically add a string to the resource file when the control is added.
(EDIT: Based on other users CTRL+1 is the short cut to do this.)
You can add the string to the strings.xml by clicking command and 1(on a mac, assume it would be control 1 on a Windows or Linux box) simultaneously. This will add the resource to strings.xml and then open that up in the editor.
Thanks Siddiq Abu Bakkar! I didn't think it would be there.
On Eclipse (and Windows) the shortcut is:
Alt+Shift+A (release all and then press) S
When you use Eclipse for first time it's not easy understand how to use these kind of "complex" shortcuts.
I can't vote and i can't comment answers yet (missing reputation as i'm a new user)
But i confirm :
1) hard type the string in your code like
mydlg.setTitle("hello guys");
2) select your string (e.g : "hello guys")
3) press Alt + Shift + A then press S
a dialog will appear to let you add a new string into resources. Everything should be already filled into that dialog box.

Android Replace "..." with ellipsis character

Since AVD tools 16 I'm getting this warning:
Replace "..." with ellipsis character (..., …) ?
in my strings.xml
at this line
<string name="searching">Searching...</string>
How do I replace ...? Is it just literally …?
Could someone explain this encoding?
… is the unicode for "…" so just replace it. It's better to have it as one char/symbol than three dots.
To make thing short just put … in place ...
Link to XML character Entities List
Look at Unicode column of HTML for row named hellip
If you're using Eclipse then you can always do the following:
Right click on the warning
Select "Quick Fix" (shortcut is Ctrl + 1 by default)
Select "Replace with suggested characters"
This should replace your three dots with the proper Unicode character for ellipsis.
Just a note: The latest version of ADT (21.1) sometimes won't do the replace operation properly, but earlier versions had no problem doing this.
This is the character: …
The solution to your problem is:
Go to Window -> Preferences -> Android -> Lint Error Checking
And search for "ellipsis". Change the warning level to "Info" or "Ignore".
This answer is indirectly related to this question:
In my case textView1.setTextView("done&#8230"); was showing some box/chinese character. Later, I checked into fileformat.info for what the value represents and I found this is a Han character.
So, what to do? I searched for "fileformat.info ellipse character" and then everything became clear to me once I saw its values are;
UTF-16 (hex) 0x2026 (2026)
UTF-16 (decimal) 8,230
So, you have several encoding available to represent a character (e.g. 10 in Decimal is represented as A in hexa) so it is very important to know when you are writing an unicode character, how receiving function decodes it. If it decodes as decimal value then you have to provide decimal value, if it accept hexadecimal then you have to provide hexadecimal.
In my case, setTextView() function accepts decimal encoded value but I was providing hexadecimal values so I was getting wrong character.
The quick fix shortcut in Android Studio is Alt + Enter by default.
Best not to ignore it as suggested by some, it seems to me. Use Android Studio to correct it (rather than actually typing in the character code), and the tool will replace the three dots with the three-dot unicode character. Won't be confusing to translators etc.

Categories

Resources