3 回答

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
首先,您需要修復(fù)方法以返回適配器所需的數(shù)據(jù),以將項(xiàng)目對(duì)象標(biāo)識(shí)為
// return the new data from sourcein case of update
public Object getItem(int position) {
return grid[position];
}
// don't send 0 always
public long getItemId(int position) {
return position;
}
// invoke notifyDataSetChanged(); when there is a change in data source
public void update(int id, int player){
grid[id] = R.drawable.ic_notifications_black_24dp;
notifyDataSetChanged();
}

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
您需要通知適配器數(shù)據(jù)元素已更改。試試這個(gè)update()方法:
public void update(int id, int player){
grid[id] = R.drawable.ic_notifications_black_24dp;
notifyDataSetChanged();
}

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
好的,我發(fā)現(xiàn)了問(wèn)題,我在 中設(shè)置了網(wǎng)格,getView(int position, View convertView, ViewGroup parent);
但它應(yīng)該在構(gòu)造函數(shù)中設(shè)置。問(wèn)題是每次我點(diǎn)擊一個(gè)項(xiàng)目時(shí)它都會(huì)重置網(wǎng)格中的值,所以該值沒(méi)有改變。
添加回答
舉報(bào)