更改 android.R.layout.simple_list_item_multiple_choice 的文本颜色

Change text color of android.R.layout.simple_list_item_multiple_choice

我想知道如何更改 android.R.layout.simple_list_item_multiple_choice

的文本颜色

我知道您可以使用复选框创建自己的列表视图,但我真的不想这样做,因为 android.R.layout.simple_list_item_multiple_choice 工作得很好,我只想知道如何更改文本颜色。

我遇到了 this question here,但我不明白如何使用投票最多的答案。

如何覆盖 android.R.layout.simple_list_item_multiple_choice textview 以便更改它的颜色。谢谢。

您可以轻松更改颜色。 您只需重写 getView() 方法。 并在特定视图中膨胀 android.R.layout.simple_list_item_multiple_choice。现在您可以访问整个模板。 这样就可以通过idandroid.R.id.text1查找得到本模板中使用的TextView。之后你可以改变textview的行为。

ArrayAdapter<String> list = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, your_data_container) {
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View v = LayoutInflater.from(InvitationFlowActivity.this).inflate(android.R.layout.simple_list_item_multiple_choice, null);
                TextView tv = (TextView) v.findViewById(android.R.id.text1);
                tv.setTextColor("Your_color");
            }
        };

如果您使用的是客户适配器,那么您还可以重写相同的 getView() 方法,并且可以根据您的要求对其进行自定义。

只需制作自定义布局 - simple_list_item_multiple_choice.xml 像这样 -

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:gravity="center_vertical"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:paddingLeft="6dip"
    android:paddingRight="6dip"
    android:textColor="#FF0000"
/>

并用它代替 android.R.layout.simple_list_item_multiple_choice.xml

有两种方法可以做到这一点。 1.重写getView方法 2. 使用自定义布局而不是标准布局。

没有。 2 更好,因为您可以对其进行更多控制,并且可以轻松进行编辑。 Alt+Click 会将所需的布局克隆到您的 res/layout 文件夹中。 更改新布局并在适配器中使用它。

ArrayAdapter aa = new ArrayAdapter(getApplicationContext(),R.layout.text_change,listItems);
        listView.setAdapter(aa);

这里listItems是list的String数组。 text_change.xml 是更新后的布局 xml listView 是主布局中的列表视图。

为了动态更新内容的颜色,请使用以下代码

AdapterView.OnItemClickListener itemClickListener = new AdapterView.OnItemClickListener(){
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                if(position==0)
                {
                    //Intent intent = new Intent(CoffeeShop.this,DrinkCategoryActivity.class);
                    //startActivity(intent);
                    TextView txtV = (TextView)view;
                    txtV.setTextColor(Color.BLUE);
                }
                else
                {
                    TextView txtV = (TextView)view;
                    txtV.setTextColor(Color.YELLOW);
                    Toast toast = Toast.makeText(getApplicationContext(),(CharSequence)"These Methods are yet to be made public", Toast.LENGTH_SHORT);
                    toast.show();
                }

            }
        };
        ListView listView = (ListView)findViewById(R.id.list_opt);
        listView.setOnItemClickListener(itemClickListener);

为视图添加 onclicklistner 将允许在单击时更新文本的颜色。您可以添加相应的逻辑来决定文本应该显示哪种颜色。