我有listview,里面有24个文本视图(每个视图中都有一个小时)。 我想要做的是改变我点击的项目的背景颜色。
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int i, long l) {
View v;
v = parent.getChildAt(i);
v.setBackgroundColor(Color.GREEN);
}
});
问题在于,当我点击某个特定项目时,不仅会更改一个项目的颜色,而且还会更改其他一些项目的颜色。
我知道
getChildAt()
并不总是获得相同的固定项目。 我想知道应该怎么做,以便只有被点击的项目改变bg颜色。
编辑: 这就是整个片段类
public class GamesFragment extends Fragment {
//TopRatedFragment tf = new TopRatedFragment();
List list = new ArrayList<Date>();
public ArrayAdapter<String> adapter;
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
View v;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.fragment_games, container, false);
final ListView listView = (ListView) rootView.findViewById(R.id.listView);
for(int i = 0;i<24;i++){
String date = Integer.toString(i) +":00";
try{
Date num = sdf.parse(date);
SimpleDateFormat time = new SimpleDateFormat("HH:mm");
list.add(time.format(num));
}catch(ParseException e){
e.printStackTrace();
}
}
adapter = new ArrayAdapter<String>(this.getActivity(), R.layout.layout1,R.id.textView,list);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int i, long l) {
View v;
v = parent.getChildAt(i);
v.setBackgroundColor(Color.GREEN);
}
});
listView.setAdapter(adapter);
return rootView;
}
}