我只想更改listView的one项的颜色背景,我目前有:
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(parentActivity, android.R.layout.simple_list_item_1, accountList) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
ViewGroup.LayoutParams params = view.getLayoutParams();
view.setLayoutParams(params);
TextView textview = (TextView) view;
textview.setTextSize(15);
textview.setGravity(Gravity.CENTER);
textview.setTextColor(Color.WHITE);
int p = 0;
for (Accounts c : Register.getAccounts()) {
if (c.getNumber().equals(accountNumber) && (position == p)){
view.setBackgroundResource(R.color.colorPrimaryDark);
}
p++;
}
return textview;
}
};
listView.setAdapter(adapter);
说明:我有一个用户拥有的关联帐户列表,我需要更改当时处于活动状态的帐户的背景颜色,问题是:
view.setBackgroundResource(R.color.colorPrimaryDark);
正在设置listView的多个元素,谢谢。
发布于 2018-06-05 01:40:21
我更改了你的代码,试试这个
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(parentActivity, android.R.layout.simple_list_item_1, accountList) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
ViewGroup.LayoutParams params = view.getLayoutParams();
view.setLayoutParams(params);
TextView textview = (TextView) view;
textview.setTextSize(15);
textview.setGravity(Gravity.CENTER);
textview.setTextColor(Color.WHITE);
if (Register.getAccounts().get(position).getNumber().equals(accountNumber) ){
textview.setBackgroundResource(R.color.colorPrimaryDark);
}else textview.setBackgroundResource(0);
return textview;
}
};
listView.setAdapter(adapter);
发布于 2018-06-02 03:33:29
尝试省略p
和它的条件。
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(parentActivity, android.R.layout.simple_list_item_1, accountList) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
ViewGroup.LayoutParams params = view.getLayoutParams();
view.setLayoutParams(params);
TextView textview = (TextView) view;
textview.setTextSize(15);
textview.setGravity(Gravity.CENTER);
textview.setTextColor(Color.WHITE);
if (Register.getAccounts().get(position).equals(accountNumber)){
view.setBackgroundResource(R.color.colorPrimaryDark);
}
return textview;
}
};
listView.setAdapter(adapter);
发布于 2018-06-02 04:45:26
你需要在你的条件中添加一个"else“分支
if (c.getNumber().equals(accountNumber)){
view.setBackgroundResource(R.color.colorPrimaryDark);
} else {
view.setBackgroundResource(R.color.white);
}
https://stackoverflow.com/questions/50649534
复制相似问题