Android TextWatcher 根据文本更改EditText 文本颜色。多个EditText
Android TextWatcher to change EditText text color according to text. Multiple EditText
我正在尝试实施 TextWatcher 以根据每个文本中的文本更改相对布局中每个 EditText 的文本颜色。我还有一个按钮,当我单击该按钮时,Listener 会在第一次使用 TextWatcher 时随机填充 EditText("IRE"、"SCO"...等)。
代码:
public class MainActivity extends Activity implements TextWatcher{
private EditText team1,team2,team3,team4,team5,team6,team7,team8, team9,team10,team11,team12,team13,team14,team15;
private EditText text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.luckdipbutton);
holeScores = new ArrayList<EditText>();
rl = (ScrollView) findViewById(R.id.scrollView);
rl.setBackgroundColor(Color.BLACK);
team1 = (EditText) findViewById(R.id.team1);
// team1.addTextChangedListener(this);
team2 = (EditText) findViewById(R.id.team2);
team3 = (EditText) findViewById(R.id.team3);
team4 = (EditText) findViewById(R.id.team4);
team5 = (EditText) findViewById(R.id.team5);
team6 = (EditText) findViewById(R.id.team6);
team7 = (EditText) findViewById(R.id.team7);
team8 = (EditText) findViewById(R.id.team8);
team9 = (EditText) findViewById(R.id.team9);
team10 = (EditText) findViewById(R.id.team10);
team11 = (EditText) findViewById(R.id.team11);
team12 = (EditText) findViewById(R.id.team12);
team13 = (EditText) findViewById(R.id.team13);
team14 = (EditText) findViewById(R.id.team14);
team15 = (EditText) findViewById(R.id.teamwinner);
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.toString().equals("IRE"))
{
this.text.setTextColor(Color.GREEN);
}
else if (s.toString().equals("SCO"))
{
this.text.setTextColor(Color.WHITE);
}
else if (s.toString().equals("AUS"))
{
this.text.setTextColor(Color.YELLOW);
}
else if (s.toString().equals("NZL"))
{
this.text.setTextColor(Color.RED);
}
else {
}
}
试试这个:
private EditText team1, team2, team3, team4, team5, team6, team7,team8, team9, team10, team11, team12, team13, team14, team15;
private ScrollView rl;
private Button button;
private ArrayList<EditText> allEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.luckdipbutton);
rl = (ScrollView) findViewById(R.id.scrollView);
rl.setBackgroundColor(Color.BLACK);
allEditText = new ArrayList<EditText>();
team1 = (EditText) findViewById(R.id.team1);
team2 = (EditText) findViewById(R.id.team2);
team3 = (EditText) findViewById(R.id.team3);
team4 = (EditText) findViewById(R.id.team4);
team5 = (EditText) findViewById(R.id.team5);
team6 = (EditText) findViewById(R.id.team6);
team7 = (EditText) findViewById(R.id.team7);
team8 = (EditText) findViewById(R.id.team8);
team9 = (EditText) findViewById(R.id.team9);
team10 = (EditText) findViewById(R.id.team10);
team11 = (EditText) findViewById(R.id.team11);
team12 = (EditText) findViewById(R.id.team12);
team13 = (EditText) findViewById(R.id.team13);
team14 = (EditText) findViewById(R.id.team14);
team15 = (EditText) findViewById(R.id.teamwinner);
allEditText.add(team1);
allEditText.add(team2);
allEditText.add(team3);
allEditText.add(team4);
allEditText.add(team5);
allEditText.add(team6);
allEditText.add(team7);
allEditText.add(team8);
allEditText.add(team9);
allEditText.add(team10);
allEditText.add(team11);
allEditText.add(team12);
allEditText.add(team13);
allEditText.add(team14);
allEditText.add(team15);
addTextWatcherToAllEditText();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
public class GenericTextWatcher implements TextWatcher
{
private EditText text;
public GenericTextWatcher(EditText text)
{
this.text = text;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.toString().equals("IRE"))
{
this.text.setTextColor(Color.parseColor("#FF228822"));
} else if (s.toString().equals("SCO")) {
this.text.setTextColor(Color.parseColor("#FFFFFFFF"));
} else if (s.toString().equals("AUS")) {
this.text.setTextColor(Color.parseColor("#FFDAA520"));
} else if (s.toString().equals("NZL")) {
this.text.setTextColor(Color.parseColor("#FF000000"));
} else if (s.toString().equals("WAL")){
this.text.setTextColor(Color.parseColor("#FFFF0000"));
}
else if (s.toString().equals("RSA")){
this.text.setTextColor(Color.parseColor("#FF808000"));
}
else if (s.toString().equals("ARG")){
this.text.setTextColor(Color.parseColor("#FF87CEFA"));
}
else if (s.toString().equals("FRA")){
this.text.setTextColor(Color.parseColor("#FF4169E1"));
}
else{
this.text.setTextColor(Color.parseColor("#FFFFFFFF"));
}
}
}
private void addTextWatcherToAllEditText()
{
for(EditText currEditText : allEditText)
{
currEditText.addTextChangedListener(new GenericTextWatcher(currEditText));
}
}
}
我正在尝试实施 TextWatcher 以根据每个文本中的文本更改相对布局中每个 EditText 的文本颜色。我还有一个按钮,当我单击该按钮时,Listener 会在第一次使用 TextWatcher 时随机填充 EditText("IRE"、"SCO"...等)。
代码:
public class MainActivity extends Activity implements TextWatcher{
private EditText team1,team2,team3,team4,team5,team6,team7,team8, team9,team10,team11,team12,team13,team14,team15;
private EditText text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.luckdipbutton);
holeScores = new ArrayList<EditText>();
rl = (ScrollView) findViewById(R.id.scrollView);
rl.setBackgroundColor(Color.BLACK);
team1 = (EditText) findViewById(R.id.team1);
// team1.addTextChangedListener(this);
team2 = (EditText) findViewById(R.id.team2);
team3 = (EditText) findViewById(R.id.team3);
team4 = (EditText) findViewById(R.id.team4);
team5 = (EditText) findViewById(R.id.team5);
team6 = (EditText) findViewById(R.id.team6);
team7 = (EditText) findViewById(R.id.team7);
team8 = (EditText) findViewById(R.id.team8);
team9 = (EditText) findViewById(R.id.team9);
team10 = (EditText) findViewById(R.id.team10);
team11 = (EditText) findViewById(R.id.team11);
team12 = (EditText) findViewById(R.id.team12);
team13 = (EditText) findViewById(R.id.team13);
team14 = (EditText) findViewById(R.id.team14);
team15 = (EditText) findViewById(R.id.teamwinner);
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.toString().equals("IRE"))
{
this.text.setTextColor(Color.GREEN);
}
else if (s.toString().equals("SCO"))
{
this.text.setTextColor(Color.WHITE);
}
else if (s.toString().equals("AUS"))
{
this.text.setTextColor(Color.YELLOW);
}
else if (s.toString().equals("NZL"))
{
this.text.setTextColor(Color.RED);
}
else {
}
}
试试这个:
private EditText team1, team2, team3, team4, team5, team6, team7,team8, team9, team10, team11, team12, team13, team14, team15;
private ScrollView rl;
private Button button;
private ArrayList<EditText> allEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.luckdipbutton);
rl = (ScrollView) findViewById(R.id.scrollView);
rl.setBackgroundColor(Color.BLACK);
allEditText = new ArrayList<EditText>();
team1 = (EditText) findViewById(R.id.team1);
team2 = (EditText) findViewById(R.id.team2);
team3 = (EditText) findViewById(R.id.team3);
team4 = (EditText) findViewById(R.id.team4);
team5 = (EditText) findViewById(R.id.team5);
team6 = (EditText) findViewById(R.id.team6);
team7 = (EditText) findViewById(R.id.team7);
team8 = (EditText) findViewById(R.id.team8);
team9 = (EditText) findViewById(R.id.team9);
team10 = (EditText) findViewById(R.id.team10);
team11 = (EditText) findViewById(R.id.team11);
team12 = (EditText) findViewById(R.id.team12);
team13 = (EditText) findViewById(R.id.team13);
team14 = (EditText) findViewById(R.id.team14);
team15 = (EditText) findViewById(R.id.teamwinner);
allEditText.add(team1);
allEditText.add(team2);
allEditText.add(team3);
allEditText.add(team4);
allEditText.add(team5);
allEditText.add(team6);
allEditText.add(team7);
allEditText.add(team8);
allEditText.add(team9);
allEditText.add(team10);
allEditText.add(team11);
allEditText.add(team12);
allEditText.add(team13);
allEditText.add(team14);
allEditText.add(team15);
addTextWatcherToAllEditText();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
public class GenericTextWatcher implements TextWatcher
{
private EditText text;
public GenericTextWatcher(EditText text)
{
this.text = text;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.toString().equals("IRE"))
{
this.text.setTextColor(Color.parseColor("#FF228822"));
} else if (s.toString().equals("SCO")) {
this.text.setTextColor(Color.parseColor("#FFFFFFFF"));
} else if (s.toString().equals("AUS")) {
this.text.setTextColor(Color.parseColor("#FFDAA520"));
} else if (s.toString().equals("NZL")) {
this.text.setTextColor(Color.parseColor("#FF000000"));
} else if (s.toString().equals("WAL")){
this.text.setTextColor(Color.parseColor("#FFFF0000"));
}
else if (s.toString().equals("RSA")){
this.text.setTextColor(Color.parseColor("#FF808000"));
}
else if (s.toString().equals("ARG")){
this.text.setTextColor(Color.parseColor("#FF87CEFA"));
}
else if (s.toString().equals("FRA")){
this.text.setTextColor(Color.parseColor("#FF4169E1"));
}
else{
this.text.setTextColor(Color.parseColor("#FFFFFFFF"));
}
}
}
private void addTextWatcherToAllEditText()
{
for(EditText currEditText : allEditText)
{
currEditText.addTextChangedListener(new GenericTextWatcher(currEditText));
}
}
}