我有一个ListActivity,我正在显示一个列表:
setListAdapter(new ArrayAdapter<String>(getApplicationContext(),
android.R.layout.simple_list_item_single_choice, mStringList));
Run Code Online (Sandbox Code Playgroud)
默认情况下,列表项的文本颜色为白色,我想将列表中文本视图的文本颜色更改为黑色.
我该怎么办?
dha*_*007 84
另一种最简单的方法是使用textSize,textStyle,color等创建一个包含所需textview的布局文件,然后将其与ArrayAdapter一起使用.
例如mytextview.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tv"
android:textColor="@color/font_content"
android:padding="5sp"
android:layout_width="fill_parent"
android:background="@drawable/rectgrad"
android:singleLine="true"
android:gravity="center"
android:layout_height="fill_parent"/>
Run Code Online (Sandbox Code Playgroud)
然后像往常一样将它与ArrayAdapter一起使用
ListView lst = new ListView(context);
String[] arr = {"Item 1","Item 2"};
ArrayAdapter<String> ad = new ArrayAdapter<String>(context,R.layout.mytextview,arr);
lst.setAdapter(ad);
Run Code Online (Sandbox Code Playgroud)
这样您就不需要为它创建自定义适配器.
Cam*_*aul 47
我意识到这个问题有点旧,但这是一个非常简单的解决方案. 您无需创建自定义ListView甚至自定义布局.
只需创建一个ArrayAdapter的匿名子类并覆盖getView().让super.getView()处理所有繁重的工作.由于simple_list_item_1只是一个文本视图,您可以自定义它(例如设置textColor)然后返回它.
这是我的一个应用程序的示例.我正在显示最近的位置列表,我希望所有出现的"当前位置"都是蓝色,其余的都是白色.
ListView listView = (ListView) this.findViewById(R.id.listView);
listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, MobileMuni.getBookmarkStore().getRecentLocations()) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = (TextView) super.getView(position, convertView, parent);
String currentLocation = RouteFinderBookmarksActivity.this.getResources().getString(R.string.Current_Location);
int textColor = textView.getText().toString().equals(currentLocation) ? R.color.holo_blue : R.color.text_color_btn_holo_dark;
textView.setTextColor(RouteFinderBookmarksActivity.this.getResources().getColor(textColor));
return textView;
}
});
Run Code Online (Sandbox Code Playgroud)
chi*_*hip 35
你只需覆盖getView
方法ArrayAdapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),
android.R.layout.simple_list_item_1, mStringList) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView text = (TextView) view.findViewById(android.R.id.text1);
text.setTextColor(Color.BLACK);
return view;
}
};
Run Code Online (Sandbox Code Playgroud)
最简单的方法是不需要创建任何额外的东西就是修改简单列表TextView
:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, strings) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = (TextView) super.getView(position, convertView, parent);
textView.setTextColor({YourColorHere});
return textView;
}
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
101278 次 |
最近记录: |