Android ListView第一个元素颜色不同
我正在做一个项目,有两个列表视图用于选择不同的地区和城市。问题是,我有一个选项是“所有地区”和“所有城市”,我希望这两种颜色不同(在我的例子中,主应用程序颜色) 我在ListView上尝试过getItemAtPosition之类的方法,但没有任何效果。。以下是与该列表视图相关的代码:Android ListView第一个元素颜色不同,android,listview,colors,textview,Android,Listview,Colors,Textview,我正在做一个项目,有两个列表视图用于选择不同的地区和城市。问题是,我有一个选项是“所有地区”和“所有城市”,我希望这两种颜色不同(在我的例子中,主应用程序颜色) 我在ListView上尝试过getItemAtPosition之类的方法,但没有任何效果。。以下是与该列表视图相关的代码: mListView = (ListView) findViewById(R.id.list); ArrayList<String> regions = getIntent().getExtras().g
mListView = (ListView) findViewById(R.id.list);
ArrayList<String> regions = getIntent().getExtras().getStringArrayList("regions_selection");
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String regionId;
if (position == 0) {
regionId = "";
} else {
regionId = OptionsManager.getInstance().getOptions().getRegion(position - 1).getId();
}
SearchInformations.getInstance().setRegionId(regionId);
startActivity(new Intent(PhoneRegionListActivity.this, PhoneClubListActivity.class));
}
});
mListView.setAdapter(new ArrayAdapter<>(this, R.layout.list_item, regions));
mListView=(ListView)findViewById(R.id.list);
ArrayList regions=getIntent().getExtras().getStringArrayList(“区域选择”);
mListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串区域ID;
如果(位置==0){
regionId=“”;
}否则{
regionId=OptionsManager.getInstance().getOptions().getRegion(位置-1.getId();
}
SearchInformations.getInstance().setRegionId(regionId);
startActivity(新意图(PhoneRegionListActivity.this、phoneClublyStativity.class));
}
});
setAdapter(新的ArrayAdapter(this,R.layout.list_项,regions));
在设置适配器(随时从KITKAT开始)之前,可以自动包装适配器
View all = getLayoutInflater().inflate(R.layout.list_item, mListView, false);
// setup view for all regions/cities
mListView.addHeaderView(all);
mListView.setAdapter(new ArrayAdapter<>(this, R.layout.list_item, regions));
View all=getLayoutInflater().充气(R.layout.list_项,mListView,false);
//所有地区/城市的设置视图
mListView.addHeaderView(全部);
setAdapter(新的ArrayAdapter(this,R.layout.list_项,regions));
我可以通过这种方式根据不同元素的位置设置不同的颜色:
if(position == 0){
textView.setTextColor(ContextCompat.getColor(getContext(),R.color.orange));
}else{
textView.setTextColor(ContextCompat.getColor(getContext(),R.color.black));
}
在这里,else很重要,否则,当滚动时,其他一些元素可能会改变颜色。否则,避免此问题的另一种方法是每次使用LayoutInflater
重新初始化视图。您可以参考以下内容:有关带有标题的列表