1
当我点击CardView
中的按钮时,必须突出显示特定单词。我需要突出显示单词的文字也是CardView
的一部分。 问题是,当我点击按钮时,其他CardViews
中的文本也变得突出显示。按钮点击收听者在卡片视图中突出显示字符串单词的文本
是什么导致了这个问题,我该如何解决这个问题?
这是我的代码:
@Override
public void onBindViewHolder(final DuaViewHolder duaViewHolder,final int i) {
ci = allDuasLists.get(i);
duaViewHolder.arebicText.setText(ci.getDuas());
duaViewHolder.arebicEuivalantText.setText(ci.getArebicText());
duaViewHolder.nativeText.setText(ci.getNativeText());
mp = new MediaPlayer();
duaViewHolder.playAudio.setBackgroundResource(R.drawable.play_48);
class MyTimer extends CountDownTimer {
public MyTimer(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
WordtoSpan = new SpannableString(CurrentDua);
}
@Override
public void onFinish() {
k=0;
this.cancel();
Toast.makeText(context, "Timer finished", Toast.LENGTH_LONG).show();
}
@Override
public void onTick(long millisUntilFinished) {
WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), arrString[k], arrString[k + 1], Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
k++;
duaViewHolder.arebicText.setText(WordtoSpan);
}
}
duaViewHolder.playAudio.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ci = allDuasLists.get(i);
CurrentDua = ci.getDuas();
Log.e("Current Dua", CurrentDua);
arrString = new int[CurrentDua.length() + 1];
MakeSubString();
duaViewHolder.playAudio.setBackgroundResource(R.drawable.stop_48);
MyTimer timer = new MyTimer(mp.getDuration() * 1000, 1300);
timer.start();
k = 0;
}
});
}
这里是如何看起来像:
我想你的建议,我需要添加以下代码duaViewHolder.playAudio.setTag(CI);在我的onClickListener代码 –
之前,您必须添加此代码,以便在卡用户界面中填充列表中每个项目的数据。 –