我想用GridView创建一个9x9网格的游戏。网格中的每个项目都是一个TextView。 我可以将getView()方法中的网格中的每个项目的初始值设置为“0”,但是我想在这之后单独更改每个网格的值,但无法这样做。如何访问Android GridView中的单个项目?
我试着在我的扩展GridAdapter类中添加一个update()函数,该函数需要一个位置和一个数字来更新该位置,但这似乎不起作用。
public void update(int position, int number) {
TextView cell;
cell = (TextView) getItem(position);
if (cell != null)
{
cell.setText(Integer.toString(number));
}
}
Doe有人知道这可以实现吗?
这里是整个GridAdapter类在需要的情况下,
public class SudokuGridAdapter extends BaseAdapter {
private Context myContext;
private TextView[] myCells;
public SudokuGridAdapter(Context c) {
myContext = c;
myCells = new TextView[9*9];
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 9*9;
}
@Override
public Object getItem(int position) {
return myCells[position];
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView cell;
if (myCells[position] == null)
{
cell = myCells[position] = new TextView(myContext);
cell.setText("0");
}
else
{
cell = myCells[position];
}
return cell;
}
public void update(int position, int number) {
TextView cell;
cell = (TextView) getItem(position);
if (cell != null)
{
cell.setText(Integer.toString(number));
}
}
}
嘿米试图做类似的事情。但我在更新函数中获取单元格为空。无法查看。你能帮我吗? – 2012-10-25 20:35:05