Java android listview更改颜色但失败

Java android listview更改颜色但失败,java,android,Java,Android,我有一个listview,listview有一些数据, 我希望这些数据有不同的颜色 例:如果这是第1课的蓝色,第2课的红色…. 所以,我用 name.setTextColor(Color.BLUE); 但它不能改变。 为什么? 这是我的代码: public class Listening extends AppCompatActivity { ArrayList<Listenlist> listenlists = new ArrayList<Listenlist>

我有一个listview,listview有一些数据,
我希望这些数据有不同的颜色
例:如果这是第1课的蓝色,第2课的红色….
所以,我用

name.setTextColor(Color.BLUE); 但它不能改变。
为什么?


这是我的代码:

public class Listening extends AppCompatActivity {
    ArrayList<Listenlist> listenlists = new ArrayList<Listenlist>();
    ListView listview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listening);
        listview = (ListView) findViewById(R.id.list);
        seraechsql2();
    }
    public void seraechsql2(){
        View v =null;
        String result = dblisten.executeQuery();

        try{

           TextView name = ((TextView) v.findViewById(R.id.name));
            JSONArray jsonArray = new JSONArray(result);
            length=jsonArray.length();
            for(int i =0; i < jsonArray.length(); i++) 
            {
                JSONObject jsonData = jsonArray.getJSONObject(i);
                String les=jsonData.getString("lesson");
                Listenlist team = new Listenlist("L"+les);
               if(les==.....){//my condition
              name.setTextColor(Color.BLACK);//I try to change it to black but fail
               }
                listenlists.add(team);
                final ListenlistAdapter adapter = new ListenlistAdapter(this, R.layout.listenlist, listenlists);
                listview.setAdapter(adapter);
                listview.setTextFilterEnabled(true);
                listview.setSelector(R.drawable.green);
            }
        }
        catch(Exception e){}
    }
}
公共类监听扩展了AppCompative活动{
ArrayList ListenList=新建ArrayList();
列表视图列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.listing);
listview=(listview)findViewById(R.id.list);
seraechsql2();
}
公共无效seraechsql2(){
视图v=null;
String result=dblisten.executeQuery();
试一试{
TextView名称=((TextView)v.findviewbyd(R.id.name));
JSONArray JSONArray=新JSONArray(结果);
length=jsonArray.length();
for(int i=0;i

谢谢

我建议您使用RecyclerView列出项目列表。可以根据项目位置更新基于颜色的颜色。 请参阅此链接-

更多解释-

如果使用listview,则必须创建单独的自定义视图 布局。简单列表项目1 通过您自己的定制,您还需要一个类来控制此布局(在其中添加数据、创建新元素等)。 它比RecyclerView更复杂


查看此处的更多详细信息:

我看到,我可以在单击时更改颜色,但我想显示不同颜色的自动不单击…@samurai如果您可以使用“回收器”视图,这将非常容易。抱歉,我仍然不知道如何使用它,请说得更清楚,thanks@samurai您可以找到如何添加回收器视图列表的示例。可以在onBindViewHolder方法(ViewHolder)中为项目着色。请参考此链接-它非常直接。首先尝试使用recycler视图构建列表,然后添加颜色将非常容易。