listview 点击item改变所点击item中的textview的颜色

在listview监听中设置后
item_text = (TextView) parent.getChildAt(position).findViewById(R.id.listtext);
item_text.setTextColor(Color.YELLOW);

发现点击后textview变色的文字会随着列表滑动 任意分配位置 求解决

在类中声明一个成员
private List clickedItems = new ArrayList<>();

    在listview的listener中,当item被点击了,把item所 在的position加入到clickedItem中
    clickedItems.add(position);


    //在getView中

    getView(....){

//...
item_text = (TextView) parent.getChildAt(position).findViewById(R.id.listtext);
if(clickedItems.contains(position)){
item_text.setTextColor(Color.YELLOW);
}else{
item_text.setTextColor(Color.BLACK);
}
}

//...}

以上是大概的思路。

这是因为你的view重用了问题;

ListView中view是循环利用的。
在ListView对应的getView()中,需要将item_text的颜色改为正常(未点击时)的颜色。

如下所示:
getView(....){
//...
item_text = (TextView) parent.getChildAt(position).findViewById(R.id.listtext);
item_text.setTextColor(//此处为未点击时的颜色);
//...}

点击的时候还是你之前的demo没关系,只不过需要记录lastpositin=Position;
记录点击的的Position位置
if(Position==lastpositin){

}else{


这是一个变化的情况