gpt4 book ai didi

android - edittext android中的字符映射

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:09:11 25 4
gpt4 key购买 nike

我想让我的 edittext 像我写字符“g”时那样,相关的映射自定义字符应该像这里这样用印地语写成“जी”

我认为应该有字符映射但是没有任何知识可以帮助我怎么做

其他应用 https://play.google.com/store/apps/details?id=nichetech.hindi.editor也是这样做的,有离线和在线可用的选项

在线是在谷歌翻译的帮助下完成的,但如果我选择离线,那么写作就会这样

在这里你可以看到键盘是英文的,但是写的是印地语

enter image description here

谢谢

有没有办法让我用英文写,它的相关映射字符将只写在我应用程序的 EditText 中。

有没有人这样做过,请帮帮我,怎么做

最佳答案

为了完成您所追求的目标,我将创建一个映射到其他字符的字符 HashMap。如果未映射某些特定字符,则将其打印出来。这是我举的一个例子:

final HashMap<Character, Character> charMap = new HashMap<Character, Character>();
charMap.put('q', '1');
charMap.put('w', '2');
charMap.put('e', '3');
charMap.put('r', '4');
charMap.put('t', '5');
charMap.put('y', '6');

final EditText editText = (EditText) findViewById(R.id.editText);

editText.addTextChangedListener(new TextWatcher() {
boolean replaced;

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.e("TAG", start + " " + before + " " + count);
// Check in lower case
String oldStr = s.toString().toLowerCase();
StringBuilder newStr = new StringBuilder(s);

// Loop through changed chars
for (int i = 0; i < count; i++) {
// Replace if a substitution is avaiable
Character replacement = charMap.get(oldStr.charAt(start + i));
if (replacement != null) {
replaced = true;
newStr.setCharAt(start + i, replacement);
}
}

if (replaced) {
replaced = false;
editText.setText(newStr);
// Move cursor after the new chars
editText.setSelection(start + count);
}

}

@Override
public void afterTextChanged(Editable s) {

}
});

优点:

  • 在寻找替代品时忽略大小写。 (q = Q = 1)
  • 立即替换单个和多个字符
  • 不循环整个字符串
  • 可以在另一个字符串中间替换

缺点:

  • 对于每个要替换的字符,您都必须有一个 HashMap 条目
  • ...

作为旁注,我想列举一些您给定应用的“在线版本”的限制:

  • 仅当输入空格、换行符或标点符号时才进行转换。
  • 您不能向已转换的单词添加字母。

应用程序“离线”版本也有一个小错误:

  • 它不会转换用 Swipe 复制或书写的单词

关于android - edittext android中的字符映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25718298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com