我已经了解到,当使用android:entriesa时ListView,它android.R.layout.simple_list_item_1用作列表项的布局以及android.R.id.text1该布局中TextView的ID.如果我错了,请纠正我.
知道这一点,我想创建自己的适配器但使用相同的布局资源,以便提供与平台的UI一致性.因此,我尝试了以下内容:
mAdapter = new SimpleCursorAdapter(
getApplicationContext(),
android.R.layout.simple_list_item_1,
mSites,
new String[] { SitesDatabase.KEY_SITE },
new int[] { android.R.id.text1 }
);
Run Code Online (Sandbox Code Playgroud)
不幸的是,因为我正在使用一个轻主题(我有android:theme="@android:style/Theme.Light"我的<application>),列表项目显示为白色文本,使它们不可读.
但是,当使用android:entries指定静态项目列表时,项目会正确显示,并带有黑色文本颜色.
我究竟做错了什么?如何使我的动态适配器使用标准布局,但使用轻量级主题?
出于某种原因,我似乎无法更新文字的颜色在我的ListView项目.我不确定为什么会发生这种情况,有没有人有想法?
XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textColor="@android:color/white"
android:textSize="20sp">
</ListView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
JAVA:
public class MainActivity extends Activity {
Context context;
ArrayList<String> aa = new ArrayList<String>();
ListView lv;
final String URL = "http://news.google.com";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
setContentView(R.layout.splash);
lv= (ListView) findViewById(R.id.listView1);
new MyTask().execute(URL);
}
private class MyTask extends AsyncTask<String, Void, String> {
ProgressDialog prog;
String title = "";
@Override
protected void onPreExecute() {
prog = new ProgressDialog(MainActivity.this); …Run Code Online (Sandbox Code Playgroud) 我已经在我的应用程序中实现了ListView上的应用程序我使用了getListView()方法.我编写了如下代码:
String[] conversionsadd = getResources().getStringArray(R.array.conversions);
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,conversionsadd));
getListView().setTextFilterEnabled(true);
getListView().setBackgroundResource(R.drawable.listback2);
Run Code Online (Sandbox Code Playgroud)
当我在onCreate方法上编写上面的代码时,我可以显示带有一些文本的列表.从上面的代码我想在列表的中心显示文本,并以颜色显示文本.
我正在开发一个板球应用程序.我的要求是这样的,如果我选择团队1必须显示可用国家名称的列表,如果我选择一个国家名称作为印度,则必须显示来自印度的玩家列表,并且我已经从中选择了多个玩家.我做了一切.但我的问题是我使用android.R.layout.simple_list_item_multiple_choice来选择玩家.我使用简单的列表视图,该列表的背景是黑色图像.我的列表视图就是这样
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="8.5"
android:cacheColorHint="#00000000"
/>
Run Code Online (Sandbox Code Playgroud)
现在的问题是listview值显示为黑色.我已经有黑色背景图片.而且价值也是黑色的.所以看起来不太好.如何在不更改自定义适配器的情况下将listview值的颜色更改为白色.
这是我的适配器类
adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,playersName);
lvview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
lvview.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud) 我有一个来自android的默认ListView说android.R.layout.simple_list_item_1.其中ListView的背景颜色为黑色,列表文本为白色.
现在我已将ListView的背景颜色更改为白色.因此,默认情况下,listView上的文本也是白色.这就是为什么ListView的数据不可见.
在ListView上填充的文本是arraylist.那么我在哪里设置ListView文本的颜色?我想更改ListView上填充的文本颜色.
任何人都可以告诉没有自定义ListView是否可行.