简体   繁体   English

Java类列表未从另一个类中的列表更新

[英]Java classes List not updating from List in another class

I do believe that answer should already be somewhere on so, but after some search I still cant figure out my problem.. 我确实认为答案应该已经存在,但是经过一番搜索之后,我仍然无法弄清我的问题。

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);
}
}

Activity class: 活动课:

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++;


        }

This works fine: I can add to cl1.world_map with my method from activity class, and I can also get values from world_map from my activity class. 效果很好:我可以使用活动类中的方法将其添加到cl1.world_map中,也可以从活动类中的world_map中获取值。

I have another class: 我还有另一堂课:

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();
}

Here I'm always getting value of 0, like the "List strap" would never update? 在这里,我总是得到0值,就像“列表带”永远不会更新?

您的'robot'变量可能正在重新实例化,或者在两个类中甚至不是相同的实例,如果不是这种情况,请记住,在android中有很多事件可以让您重新获得片段或活动-实例化,您应该始终保存打算保留的状态

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM