0

我的意思是,我应该在哪个功能中使用文本观察器?我尝试在 onResume() 函数中使用它,但没有奏效。

我正在尝试在用户键入时检查在我的 EditText 框中输入的每个字符之一。更具体地说,我给了用户一个谜语,答案是“SOS”。答案在 EditText 框中,我想在输入后立即检查每个字符(我在 edittext 框中添加了最大长度属性,因此它不会超过 3)。当我发现一个错误的字符时,我想设置一个可见的 X 图标图像,如果字符正确则相反。

这是我的 TextWatcher 代码片段:

final EditText editText=(EditText)findViewById(R.id.editTxt_three);
    editText.addTextChangedListener(new TextWatcher() 
    {
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) 
        {

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

        }
        @Override
        public void afterTextChanged(Editable s) 
        {
            for(int i=0;i<editText.length();i++)
            {
                if(i==0)
                {
                    img=(ImageView)findViewById(R.id.icon1);
                    if(s.charAt(i)!='s' || s.charAt(i)!='S')
                        img.setVisibility(1);
                    else
                        img.setVisibility(0);
                }
                if(i==1)
                {
                    img=(ImageView)findViewById(R.id.icon2);
                    if(s.charAt(i)!='o' || s.charAt(i)!='O')
                        img.setVisibility(1);
                    else
                        img.setVisibility(0);
                }
                if(i==2)
                {
                    img=(ImageView)findViewById(R.id.icon3);
                    if(s.charAt(i)!='s' || s.charAt(i)!='S')
                        img.setVisibility(1);
                    else
                        img.setVisibility(0);
                }
            }

        }
    });

简而言之,我应该在哪里使用此代码?如果您想到什么,请随意简化我的代码:)

4

1 回答 1

0

您可以在 onCreate 中使用 textwatcher,我认为下面的代码可以帮助您。

import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.ImageView;

public class MainActivity extends Activity {
    ImageView img,img2,img3;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final EditText editText=(EditText)findViewById(R.id.editText1);
        editText.addTextChangedListener(new TextWatcher() 
        {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) 
            {

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

            }

            @Override
            public void afterTextChanged(Editable arg0) {
                String s = editText.getText().toString();
                  for(int i=0;i<editText.getText().toString().length();i++)
                    {
                        if(i==0)
                        {
                            img=(ImageView)findViewById(R.id.imageView1);                           
                            if(s.charAt(i)!='s' || s.charAt(i)!='S')
                                img.setVisibility(1);
                            else
                                img.setVisibility(0);
                        }
                        if(i==1)
                        {
                            img2=(ImageView)findViewById(R.id.imageView2);
                            if(s.charAt(i)!='o' || s.charAt(i)!='O')
                                img2.setVisibility(1);
                            else
                                img2.setVisibility(0);
                        }
                        if(i==2)
                        {
                            img3=(ImageView)findViewById(R.id.imageView3);
                            if(s.charAt(i)!='s' || s.charAt(i)!='S')
                                img3.setVisibility(1);
                            else
                                img3.setVisibility(0);
                        }
                    }

            }
        });
    }


}
于 2012-11-20T15:04:09.413 回答