清洁活动数据

时间:2012-02-03 02:47:15

标签: android

我不知道描述这个的确切词汇,但我的情况是这样的: 在我的应用程序中,我给用户选择他们想要在谷歌地图中显示哪些城市,比如有4个选项,用户点击其中两个。这是我的倾听方法。

public void onClick(View v) {
        CheckBox option;
        int id = 1;
        while ((option = (CheckBox) thisActivity.findViewById(id)) != null) {
            if (option.isChecked()) {
                selected = selected + option.getText().toString() + ";";
            }
            id++;
        }
        Intent newintent = new Intent(thisActivity, ShowInMap.class);
        newintent.putExtra("SelectedCity", selected);
        // newintent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        thisActivity.startActivity(newintent);
    }

我可以在地图上成功显示这两个选定的城市,但是当我点击后退键并选择另一个城市时,之前显示的城市仍然在地图上加上我这次选择的任何城市,而我的Log说实际上这三个城市被发送到地图API。所以我的问题是,有没有办法清理这两个选定的城市并做一个全新的选择。即只有我第二次选择的城市才在地图上。先感谢您。

1 个答案:

答案 0 :(得分:0)

似乎变量selected是全局变量,因此当您返回第一个活动以选择城市时,新选定的城市将附加到旧的selected字符串。

我建议您每次开始新选择之前先清除selected字符串。

public void onClick(View v) {
        selected="";//clear it
        CheckBox option;
        int id = 1;
        while ((option = (CheckBox) thisActivity.findViewById(id)) != null) {
            if (option.isChecked()) {
                selected = selected + option.getText().toString() + ";";
            }
            id++;
        }
        Intent newintent = new Intent(thisActivity, ShowInMap.class);
        newintent.putExtra("SelectedCity", selected);
        // newintent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        thisActivity.startActivity(newintent);
    }