android - 在动态布局中更改 textview 文本颜色
问题描述
我想显示当前日期到未来 5 天的日期和星期,所以我使用动态视图并以编程方式将此视图添加到父级。现在我想在 onclick 操作中更改文本视图的颜色和视图的背景颜色。首先,我需要更改第一个索引的颜色。我正在分享我的代码,任何人都可以告诉我如何在点击时更改 textview 的 textcolor。
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="8dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="15sp"
android:id="@+id/datenumber"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="15sp"
android:inputType="textCapSentences"
android:capitalize="sentences"
android:layout_marginTop="14dp"
android:layout_gravity="center"
android:id="@+id/weekname" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="15sp"
android:visibility="gone"
android:inputType="textCapSentences"
android:capitalize="sentences"
android:layout_marginTop="14dp"
android:layout_gravity="center"
android:id="@+id/date" />
</LinearLayout>
</LinearLayout>
活动:(日历日期从当天到未来 5 天)
public class TableBookActivtiy extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maiin);
SimpleDateFormat sdf = new SimpleDateFormat("EEE dd");
for (int i = 0; i < 6; i++) {
Calendar calendar = new GregorianCalendar();
calendar.add(Calendar.DATE, i);
String day = sdf.format(calendar.getTime());
String[] splited = day.split("\\s+");
final View child = getLayoutInflater().inflate(R.layout.activitiy_tabledate, null);
final TextView datenumber = (TextView) child.findViewById(R.id.datenumber);
final TextView weekname = (TextView) child.findViewById(R.id.weekname);
final TextView date = (TextView) child.findViewById(R.id.date);
child.setTag(date.getText().toString());
datenumber.setText(splited[0]);
weekname.setText(splited[1]);
dates_lay.addView(child);
child.setOnClickListener(new OnClickLitener());
}
((View) dates_lay.getChildAt(0)).setBackgroundColor(Color.RED); //for index 0
}
class OnClickLitener implements View.OnClickListener {
@Override
public void onClick(View v) {
// date number week name date// want to change text and background colours
}
}
}
解决方案
mTextView.setTextColor(Color.parseColor("#bdbdbd"));
Or if you have defined color code in resource's color.xml file than
(From API >= 23)
mTextView.setTextColor(ContextCompat.getColor(context, R.color.<name_of_color>));
(For API < 23)
mTextView.setTextColor(getResources().getColor(R.color.<name_of_color>));
推荐阅读
- git - windows server 2016 使用 git ssh(主机密钥验证失败)
- javascript - 是否可以在选项值属性上使用带有字符串的链式选择?
- python - 如何使用 PyOpengl 将立方体的每个面划分为小的细分?
- azure - 我的 Azure DevOps 管道作业无法正常工作,我已达到最大请求数,但我是新手
- javascript - 如何根据 SQL 表中的字段创建 JSON 数组?(Node.js - MsSQL)
- java - 如何使用 Java 通过 OAuth 流从 Reddit 检索访问令牌
- javascript - 使用 close() 时选项页面不会关闭,并且值不会更新
- android - HTML5 Canvas 在 Firefox Android 上停止重绘
- c# - 如何从进程 ID 或进程名称获取(另一个程序的)窗口处理程序?
- c# - 在 Blazor 页面中找不到 Startup 中添加的声明