以下是我的代码,用于在单击按钮时显示简单的警报对话框
AlertDialog.Builder newImage = new AlertDialog.Builder( MyActivity.this, AlertDialog.THEME_HOLO_LIGHT );
newImage.setTitle( "Select Image" );
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String> ( MyActivity.this, android.R.layout.simple_list_item_1 );
arrayAdapter.add( "Take from camera" );
arrayAdapter.add( "Select from gallery" );
newImage.setAdapter(arrayAdapter, new DialogInterface.OnClickListener()
{
@Override
public void onClick( DialogInterface dialog, int which )
{
}
});
此代码,显示输出如下图像
它显示白色的列表项,这就是它不可见的原因。我想将列表项的颜色更改为黑色。
我该怎么做?
答案 0 :(得分:3)
试试这个
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String> ( MyActivity.this, android.R.layout.simple_list_item_1 ) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView text1 = (TextView) view.findViewById(android.R.id.text1);
text1.setTextColor(Color.BLACK);
return view;
}
};
只需覆盖ArrayAdapter
的getview,找到textView即可更改颜色
答案 1 :(得分:1)
只需使用您的自定义xml文件而不是android.R.layout.simple_list_item_1
,然后将其传递给 ArrayAdapter。
喜欢这样:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ff00ff"
android:textSize="20sp"
android:text="TextView" />
</LinearLayout>
并更改适配器:
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String> (this,R.layout.Your_xml,R.id.textView1);
答案 2 :(得分:1)
TextView txt1 = (TextView) v.findViewById(android.R.id.text1);
txt1.setTextColor(Color.RED);
<强>更新强>
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String> ( MyActivity.this, android.R.layout.simple_list_item_1 ) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView text1 = (TextView) view.findViewById(android.R.id.text1);
text1.setTextColor(Color.RED);
return view;
}
};
我希望这会对你有所帮助。
答案 3 :(得分:0)
你需要在布局中定义custem alert对话框视图 首先,然后执行功能
LayoutInflater factory = LayoutInflater.from(YourCurrentclass.this);
View deleteDialogView = factory.inflate(R.layout.mylayout, null);
final AlertDialog deleteDialog = new AlertDialog.Builder(
YourCurrentclass.this).create();
deleteDialog.setView(deleteDialogView);
final TextView text = (TextView) deleteDialogView
.findViewById(R.id.textv2);
Button p = (Button) deleteDialogView.findViewById(R.id.plusbtn);
Button m = (Button) deleteDialogView.findViewById(R.id.minusbtn);
p.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
text.setTextColor(Color.BLACK);
}
});
当您在此创建自定义dilaoag时,也可以从layout(mylayout)文件中更改它。
答案 4 :(得分:0)
使用这种最简单的方式更改文字颜色:
在值文件夹中的string.xml文件中创建字符串值,如下所示
<string name="text1">Font color is <font fgcolor="#000000">Take from camera</font></string>
并且您可以通过此函数将此字符串用于适配器:
arrayAdapter.add(getResources().getString(R.string.text1));
希望这会奏效。祝你好运..