我试图将ListView textColor设置为黑色,因为我使用的是白色背景.
这是我的MailActivity
public class MailActivity extends ListActivity {
String[] listItems = { "Compose", "Inbox", "Drafts", "Sent" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mails);
setListAdapter(new ArrayAdapter(this,
android.R.layout.simple_list_item_1, listItems));
}
}
Run Code Online (Sandbox Code Playgroud)
和我的XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF">
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Empty set"
android:textColor="#000000" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我将背景设为白色,但不确定将前景设置为黑色.我试过xml,看起来没有帮助.
Sha*_*dul 145
好的,这里有一些你应该清楚的事情:
我将尝试用代码示例解释这个:
****让我们从ListItems布局开始**:将它保存在你res/layout的Android项目的文件夹中,例如**list_black_text.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Definig a container for you List Item-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Defining where should text be placed. You set you text color here-->
<TextView
android:id="@+id/list_content"
android:textColor="#000000"
android:gravity="center"
android:text="sample"
android:layout_margin="4dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
嗯,简单的布局,TextView准确.您必须为TextView分配一个ID才能使用它.
现在来到你的屏幕/活动/主要布局,正如我所说,你正在定义具有android:background属性的屏幕背景.我看到你也在那里定义了一个TextView,我怀疑你正在尝试在那里定义内容/列表项,这根本不需要.
这是您编辑的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF">
<ListView
android:id="@android:id/list" android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<!-- REMOVED TEXT VIEW, AND KEEPING BACKGROUND WHITE -->
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
最后,最重要的是,设置你的适配器.
setListAdapter(new ArrayAdapter<String>(
this, R.layout.list_black_text, R.id.list_content, listItems));
Run Code Online (Sandbox Code Playgroud)
注意我们传递给适配器的布局资源R.layout.list_black_text,以及R.id.list_content我们声明的TextView ID.我也将ArrayAdapter更改为String类型,因为它是通用的.
我希望这能解释一切.如果您同意,请接受我的回答.
凌乱但快速修复方法
如果你不想继续进行复杂的布局定义等,你也可以快速修复.
在实例化适配器时声明一个内部类来执行此操作,这里是代码示例:
ArrayAdapter<String> adapter=new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1, listItems){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view =super.getView(position, convertView, parent);
TextView textView=(TextView) view.findViewById(android.R.id.text1);
/*YOUR CHOICE OF COLOR*/
textView.setTextColor(Color.BLUE);
return view;
}
};
/*SET THE ADAPTER TO LISTVIEW*/
setListAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
sil*_*_mx 21
my_styles.xml并将其保存res/values.添加以下代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ListFont" parent="@android:style/Widget.ListView">
<item name="android:textColor">#FF0000</item>
<item name="android:typeface">sans</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)Activity在您AndroidManifest.xml的android:theme属性中将您的样式添加到您的定义中,并将您创建的样式的名称指定为值.例如:
<activity android:name="your.activityClass" android:theme="@style/ListFont">
Run Code Online (Sandbox Code Playgroud)我克隆了simple_list_item_1(Alt + Click)并将副本放在我的res/layout文件夹中,list_white_text.xml用以下内容重命名为:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:textColor="@color/abc_primary_text_material_dark"
android:minHeight="?android:attr/listPreferredItemHeightSmall" />
Run Code Online (Sandbox Code Playgroud)
在android:textColor="@color/abc_primary_text_material_dark"转化为白我的设备上.
然后在java代码中:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_white_text, myList);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
208896 次 |
| 最近记录: |