一直在这个网站上搜索任何答案,我没有找到真正简单的解决方案。我正在创建一个使用 sqlite 数据库通过键入的颜色名称查找十六进制值的 Android 应用程序。我正在动态创建一个 TextView,设置其文本和文本颜色,然后将其添加到 ArrayList,然后 ArrayList 正在添加到列表视图。文本显示在 ListView 中,但未设置其颜色属性。我真的很想找到一种方法来为每个列表视图项设置文本颜色。到目前为止,这是我的代码:
类变量:
private ListView lsvHexList;
private ArrayList<String> hexList;
private ArrayAdapter adp;
在 onCreate() 中:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.color2hex);
lsvHexList = (ListView) findViewById(R.id.lsvHexList);
hexList = new ArrayList<String>();
在我的按钮处理程序中:
public void btnGetHexValueHandler(View view) {
// Open a connection to the database
db.openDatabase();
// Setup a string for the color name
String colorNameText = editTextColorName.getText().toString();
// Get all records
Cursor c = db.getAllColors();
c.moveToFirst(); // move to the first position of the results
// Cursor 'c' now contains all the hex values
while(c.isAfterLast() == false) {
// Check database if color name matches any records
if(c.getString(1).contains(colorNameText)) {
// Convert hex value to string
String hexValue = c.getString(0);
String colorName = c.getString(1);
// Create a new textview for the hex value
TextView tv = new TextView(this);
tv.setId((int) System.currentTimeMillis());
tv.setText(hexValue + " - " + colorName);
tv.setTextColor(Color.parseColor(hexValue));
hexList.add((String) tv.getText());
} // end if
// Move to the next result
c.moveToNext();
} // End while
adp = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, hexList);
lsvHexList.setAdapter(adp);
db.close(); // close the connection
}