在 android 中单击时切换 Textview 颜色

Toggling Textview Color on click in android

我正在开发我的第一个 android 应用程序,它是一个非常基本的待办事项列表应用程序。 我使用 SQLite 数据库来存储任务。添加的任务显示在主activity.

我希望用户能够单击任何任务以将其标记为已完成,因此任务必须将其颜色更改为红色。

如果用户再次点击同一个任务,它应该恢复到原来的颜色。

我试过像这样添加一个 onclick 侦听器:

 public void onTaskDone(View view){
        view.setTextColor(Color.RED);
    }

但是 setTextColor 方法显示为红色(这意味着不能这样做)。

请帮忙!!

boolean isSelected =false 

public void onTaskDone(View view){
    if(!isSelected){
        view.setTextColor(Color.RED);
        isSelected = true;
    }else{
        view.setTextColor(Color.GREEN);
        isSelected = false;
    }
}

您可以通过添加 onclick 侦听器来简单地实现此目的,并且您可以更改文本颜色

  tvStatus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(tvStatus.getCurrentTextColor()==Color.BLACK)
                    tvStatus.setTextColor(Color.RED);   
                }else{
                    tvStatus.setTextColor(Color.BLACK);
                }

            }
        });
 boolean isSelected =false;
    public void onTaskDone(TextView view){
        view.setTextColor(isSelected?Color.BLACK:Color.RED);
        isSelected = !isSelected;

    }

在单个 textview 单击侦听器中,我们可以更改颜色,例如 below.i 具有适配器 class 我想单击特定位置 textview 需要在单击时更改颜色....

holder.statusText.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           if (holder.statusText.getCurrentTextColor() == context.getResources().getColor(R.color.colorSkyBlue)) {
               holder.statusText.setTextColor(Color.BLACK);

           } else {
               holder.statusText.setTextColor(context.getResources().getColor(R.color.colorSkyBlue));

           }
       }
   });

它真的对我有用。