我想更新一个GridView,我在另一个类中创建了我的MainActivity,在我的例子中叫做GameplayController。如何修改另一个类的MainActivity中的视图?
具体而言,我试图简单地插入gridView.setOnItemClickListener(....)...我目前我在MainActivity中的GameplayController类中的方法。
我正在制作一个小棋盘游戏应用程序,并且我想创建一个方法,“play(),并为游戏运行一个循环,直到游戏结束。我启动了GridView的onCreate MainActivity,然后我调用我希望游戏运行的方法,但我不知道如何让我创建的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吗?
处理的触摸事件迪直接从相应的看法看起来更像是要走的路,而不是无限循环。 – Teovald 2013-04-24 10:01:49