我想知道如何更改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,以便我可以更改它的颜色。谢谢。
答案 0 :(得分:3)
您可以轻松更改颜色。 您只需要覆盖getView()方法。 并在特定视图中膨胀 android.R.layout.simple_list_item_multiple_choice 。现在您可以访问整个模板。 这样您就可以通过使用id android.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");
}
};
如果您正在使用custome adapter,那么您也可以覆盖相同的getView()方法,并根据您的要求自定义它。
答案 1 :(得分:2)
只需制作自定义布局 - 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
答案 2 :(得分:0)
有两种方法可以做到这一点。 1.重写getView方法 2.使用自定义布局而不是标准布局。
没有。 2更好,因为你有更多的控制,你可以轻松编辑。
Alt+Click
会将所需的布局克隆到res/layout
文件夹。
更改新布局并在适配器中使用它。
ArrayAdapter aa = new ArrayAdapter(getApplicationContext(),R.layout.text_change,listItems);
listView.setAdapter(aa);
这里listItems是列表的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将允许在单击时更新文本的颜色。您可以添加相应的逻辑,以显示文本的显示颜色。