我的意思是,我应该在哪个函数中使用文本观察器? 我试图在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);
}
}
}
});
简而言之,我应该在哪里使用此代码? 如果您想到某些事情,请随意简化我的代码:)
答案 0 :(得分: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);
}
}
}
});
}
}