0

つまり、どの関数でテキストウォッチャーを使用する必要がありますか?onResume()関数で使用しようとしましたが、機能しませんでした。

ユーザーが入力しているときに、[編集テキスト]ボックスに入力された各文字の1つをチェックしようとしています。具体的には、ユーザーに謎を解き、答えは「SOS」です。答えは[編集テキスト]ボックスに表示され、入力直後に各文字をチェックしたいと思います(編集テキストボックスに最大長属性を追加して、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 に答える