我想从另一个类(在我的例子中称为 GameplayController)更新我在 MainActivity 中创建的 GridView。
具体来说,我试图简单地将我目前在 MainActivity 中拥有的 gridView.setOnItemClickListener(....)... 插入到 GameplayController 类中的方法中。
我正在制作一个小棋盘游戏应用程序,我想创建一个方法“play()”,该方法为游戏循环运行,直到游戏结束。我在 MainActivity 的 onCreate 中启动了 GridView,然后我调用我希望游戏运行的方法,但我不知道如何将我创建的 GridView 转移到我的 GameplayController 类方法“play()”,以便我可以直接从那里正确更新它。
这是我的 MainActivity 的相关部分:
...
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
//Create board model, add units to player's list.
UnitArray gameBoardModel = new UnitArray();
//Run the game loop until winner found.
GameplayController.play();
//This ClickListener I don't want here, I want it in my play() method.
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int postion,
long id) {
// Toast for development help only.
Toast.makeText(MainActivity.this, "" + postion,
Toast.LENGTH_SHORT).show();
}
});
}
...
这是我要控制 GridView 的类的相关部分:
public class GameplayController {
private static boolean gameOver = false;
/*
* Will run the game loop.
*/
public static void play() {
while (gameOver == false) {
/*
* Update the GridView from Main somehow.
*/
/*
* Will be put in correct place later.
/*
gameOver = true;
}
}
}
这可能是完全错误的,但我需要使用 LayoutInflater 吗?