Android GridView条目点击

点击之后条目改变颜色 再点击颜色变回来 可以实现点击多个条目

已经实现
public class MainActivity extends AppCompatActivity {
private ArrayList str;
private MyAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gv = (GridView) findViewById(R.id.gv);
str = new ArrayList();
for (int i = 0; i <10; i++) {
str.add("条目:"+i);
}
myAdapter = new MyAdapter();
gv.setAdapter(myAdapter);
gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                long arg3) {
            boolean isClick = (Boolean) arg1.getTag();
            System.out.println(isClick);
            if(isClick == false){
                //没有被点击过
                isClick = true;
            }else{
                //点击过
                isClick = false;
            }

            arg1.setTag(isClick);
            myAdapter.notifyDataSetChanged();
        }
    });
}

class MyAdapter extends BaseAdapter {

    @Override
    public int getCount() {
        return str.size();
    }

    @Override
    public String getItem(int position) {
        return str.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if(convertView == null){
            convertView =  new TextView(MainActivity.this);
        }
        TextView tv = (TextView) convertView;
        tv.setText(str.get(position));
        Object tag = tv.getTag();
        System.out.println(tag);
        if( tag == null){
            tv.setTag(false);
        }else{
            boolean isClick = (Boolean) tv.getTag();
            if(isClick){
                tv.setBackgroundColor(Color.YELLOW);
            }else{
                tv.setBackgroundColor(Color.WHITE);
            }
        }
        return tv;
    }

}

}