我的Android應用程序中有一個EditText,您可以在其中輸入一些文本。我想要做的是將每一個字符都改爲另一個字符(某種加密)。因此,我首先必須閱讀每一個字符。如何從Android的EditText中讀取單個字符?
我該怎麼做?
更新: 編輯文本中的文本將被編碼在單擊按鈕上。
我的Android應用程序中有一個EditText,您可以在其中輸入一些文本。我想要做的是將每一個字符都改爲另一個字符(某種加密)。因此,我首先必須閱讀每一個字符。如何從Android的EditText中讀取單個字符?
我該怎麼做?
更新: 編輯文本中的文本將被編碼在單擊按鈕上。
您可以使用InputFilter。
當您繼續輸入以下代碼片段時,會將每個字符替換爲$。
以下代碼將幫助您。
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
});
}
}
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
}
讀取整個字符串,處理它的每個字符,將結果放入一個字符串中並將其存儲到目標editText或TextView中。
如果你想要做這個活,捕捉任何有效鍵的KeyEvent的,檢索的EditText整個字符串,替換以任何你想要的最後一個字符,並把結果存儲到目標視圖。
你就不能讀取整個字符串,並做了.ToCharArray()? – yhyrcanus 2012-07-05 14:26:57
從編輯文本中獲取字符串,並運行for循環從索引0到字符串長度,並在循環中使用charAt(index)方法。 – 2012-07-05 14:28:19
[檢查此鏈接(http://developer.android.com/reference/android/text/TextWatcher.html) – Venky 2012-07-05 14:28:32