私は複数のwhileループをマージする必要はありません。私はそうのような文字列の配列を持っている:反復を避けるために、Javaで2つのwhileループをマージする方法
String[] myStrings = { "Home", "Two", "Three" };
私の目標は、上記の配列のいずれかの文字列がEDITTEXTで入力された場合、スパン効果を適用することです。私はwhileループを繰り返すことができますし、文字列を使ってはいけませんが、クリーンなコードでは、すべての文字列を配列に入れ、編集テキストに入力されている場合は、どのようにこれを達成するための任意のアイデア?あなたが巣を検索し、それがString
Sのセットに反復して検索し、飾るためにすることを、外側のループによって発生した場合、特定のString
を飾る実際のループをしてもよい
public void onTextChanged(CharSequence s, int start, int before, int count) {
String str="home";
Spannable spannable =textA.getText();
if(s.length() != 0) {
textA.setTextColor(Color.parseColor("#0000FF"));
ForegroundColorSpan fcs = new ForegroundColorSpan(Color.GREEN);
String s1 = s.toString();
int in=0; // start searching from 0 index
// keeps on searching unless there is no more function string found
while ((in = s1.indexOf(str,in)) >= 0) {
spannable.setSpan(
fcs,
in,
in + str.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// update the index for next search with length
in += str.length();
}
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
あなたの質問のタイトルは、実際の質問と一致していないようです...どちらの回答にしたいですか? –