我确实认为答案应该已经存在,但经过一些搜索我仍然无法弄清楚我的问题..
public class cl1{
private List<Map> world_map = new ArrayList<Map>();
public List<Map> returnmap(){
return world_map;
}
public void addtomap(float x, float y, int type){
Map tile = new Map();
tile.x = x;
tile.y = y;
tile.type = type;
world_map.add(tile);
}
}
活动类:
protected void onCreate(Bundle savedInstanceState) {
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View vw) {
List<Map> map = new ArrayList<Map>();
map = robot.returnmap();
for(int i=0;i<map.size();i++){
txt.setText(String.valueOf(i));
}
cl1.addtomap(x, y, 1);
x++;
y++;
}
这很好用:我可以使用我的方法从活动类添加到cl1.world_map,我也可以从我的活动类中获取world_map的值。
我有另一个班级:
protected List<Map> strap = new ArrayList<Map>();
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
returnmap();
canvas.drawText(String.valueOf(strap.size()), 100, 120, paint1);
}
private void returnmap(){
strap = robot.returnmap();
}
在这里,我总是得到0的值,就像“List strap”永远不会更新?
答案 0 :(得分:0)
你的'机器人'变量可能正在重新实例化,或者在你的两个类中甚至不是同一个实例,如果不是这样的话,请记住在android中有很多事件可以让你获得你的碎片或者重新实例化的活动,你应该总是保存你想要保留的状态