列表视图项目在单击时更改颜色

时间:2014-11-02 19:02:01

标签: java android android-listview

我有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;
    }


}

0 个答案:

没有答案