簡體   English   中英

如何從Android中的EditText中讀取單個字符?

[英]How to read a single character from an EditText in Android?

我的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

}

您可以使用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
        });

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM