Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ListView第一个元素颜色不同_Android_Listview_Colors_Textview - Fatal编程技术网

Android ListView第一个元素颜色不同

Android ListView第一个元素颜色不同,android,listview,colors,textview,Android,Listview,Colors,Textview,我正在做一个项目,有两个列表视图用于选择不同的地区和城市。问题是,我有一个选项是“所有地区”和“所有城市”,我希望这两种颜色不同(在我的例子中,主应用程序颜色) 我在ListView上尝试过getItemAtPosition之类的方法,但没有任何效果。。以下是与该列表视图相关的代码: mListView = (ListView) findViewById(R.id.list); ArrayList<String> regions = getIntent().getExtras().g

我正在做一个项目,有两个列表视图用于选择不同的地区和城市。问题是,我有一个选项是“所有地区”和“所有城市”,我希望这两种颜色不同(在我的例子中,主应用程序颜色)

我在ListView上尝试过getItemAtPosition之类的方法,但没有任何效果。。以下是与该列表视图相关的代码:

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

重新初始化视图。您可以参考以下内容:有关带有标题的列表