如果我選擇英文,我一直試圖僅獲取英文字符(26個字符),如果選擇任何北歐語言,我一直試圖獲得29個北歐字符。我很難找到如何讓這個工作。如果區域設置= en和北歐字符,如果不是
public LetterAdapter(Context c) {
letters=new String[29];
for (int a = 0; a < 26; a++) {
letters[a] = "" + (char)(a+'A');
}
letters[26] = "\u00C6";
letters[27] = "\u00D8";
letters[28] = "\u00C5";
letterInf = LayoutInflater.from(c);
}
字母[26],[27],[28]是特殊的字符是北歐字母添加和我嘗試顯示/隱藏如果區域被設置爲「EN」或其他。我已經使用這個嘗試:
public int getCount() {
if(!Locale.getDefault().getLanguage().equals("en){
return letters.length;
}else{
return letters.length-3;
}
}
這並沒有什麼,我要麼得到所有29個字符,或只有26
這是我getView
public View getView(int position, View convertView, ViewGroup parent) {
Button letterBtn;
if (convertView == null) {
letterBtn = (Button)letterInf.inflate(R.layout.letter, parent, false);
} else {
letterBtn = (Button) convertView;
}
letterBtn.setText(letters[position]);
return letterBtn;
}
缺少什麼我在這裏。
所以,我應該如何去實現我想要什麼?基本上我試圖做的是顯示字母[]值0-25(英文字母),當語言環境是英語時,整個數組如果不是英語。我能夠通過執行letters.length來顯示整個數組;在getCount()或英語字母表中通過執行letters.length-3 ;.但是我不能根據選擇的語言來改變這兩者。 –
什麼是「整個陣列」?丹麥語,瑞典語和德語是3種不同的字母。其他語言添加帶有變音符號的字母。要支持所有,你必須顯示所有的Unicode字母。這是一個*巨大的*清單。 – Andreas
如果您檢查我的代碼,letterAdapter是特定的,我解析數組以獲取A-Z中的字符,然後手動輸入ÆØÅ以填充陣列。當Locale設置爲英文時,我想要做的是顯示A-Z,如果是丹麥語,則顯示A-Å。因此,如果language = danish,我希望整個數組A-Å顯示在gridView(它爲每個字符生成按鈕)和A-Z(如果language = english)。 不知道如何解釋,否則。 –