我的 Android 应用程序中有一个 EditText,您可以在其中输入一些文本。我想要做的是将每个字符更改为另一个字符(某种加密)。因此,我首先必须阅读每一个字符。
我怎样才能做到这一点?
更新:编辑文本中的文本将在单击按钮时进行编码。
我的 Android 应用程序中有一个 EditText,您可以在其中输入一些文本。我想要做的是将每个字符更改为另一个字符(某种加密)。因此,我首先必须阅读每一个字符。
我怎样才能做到这一点?
更新:编辑文本中的文本将在单击按钮时进行编码。
读取整个 String,处理其中的每个字符,将结果放入 String 并将其存储到目标 editText 或 TextView 中。
如果您想实时执行此操作,请捕获任何有效键的 keyevent,从 edittext 检索整个字符串,将最后一个字符替换为您想要的任何字符,并将结果存储到目标视图中。
String str = edittext.getText().toString();
for(int i=0;i<str.length;i++)
{
String singlechar=charAt(i);
// here you can change char by another chare here
}
您可以使用输入过滤器。
当您继续键入以下代码段时,将用 $ 替换每个字符。
关注 Snippet 将对您有所帮助。
InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
return "$";
}
return null;
}
};
EditText editText = (EditText) findViewById(R.id.rg);
editText.setFilters(new InputFilter[] {filter});
下面是我的工作片段
package org.vipul;
import android.app.Activity;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.Spanned;
import android.widget.EditText;
public class AbcActivity extends Activity {
EditText editText;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText = (EditText) findViewById(R.id.rg);
InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
return "$";
}
return null;
}
};
editText.setFilters(new InputFilter[] {
filter
});
}
}