Android ArrayList在从另一个活动返回后变得清晰

Android ArrayList在从另一个活动返回后变得清晰,android,listview,arraylist,android-activity,android-arrayadapter,Android,Listview,Arraylist,Android Activity,Android Arrayadapter,这很奇怪,因为昨天这个代码还在工作,但今天不行。我很确定我没有改变任何事情 问题是我一开始有一个空的ArrayList。然后我调用另一个活动,它将向上一个活动添加一个字符串,我将该字符串添加到ArrayList中。此ArrayList的内容用于填充ListView 问题是,每次启动新活动并返回新字符串时,ArrayList都是空的,因此我只能在ListView上看到最后一个返回的字符串 我尝试了一些关于onSaveInstanceState的东西,但没有用。有什么想法吗?谢谢 ArrayList

这很奇怪,因为昨天这个代码还在工作,但今天不行。我很确定我没有改变任何事情

问题是我一开始有一个空的ArrayList。然后我调用另一个活动,它将向上一个活动添加一个字符串,我将该字符串添加到ArrayList中。此ArrayList的内容用于填充ListView

问题是,每次启动新活动并返回新字符串时,ArrayList都是空的,因此我只能在ListView上看到最后一个返回的字符串

我尝试了一些关于onSaveInstanceState的东西,但没有用。有什么想法吗?谢谢

ArrayList<String> rules = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_filters);

    myList = (ListView) findViewById(R.id.listFilters);     

    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, rules);

    myList.setAdapter(adapter);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){

    if(requestCode == REQUEST_CODE_0 && resultCode == RESULT_OK){   
        String aux = data.getExtras().getString(S.RULE);

        rules.add(aux); 
        // here rules.size() is always 1        
        adapter.notifyDataSetChanged();
    }
}
我从另一个方法返回第二个活动的数据,如下所示:

    Intent i = new Intent();
    String rule = someOperations();
    i.putExtra(S.RULE, rule);
    setResult(RESULT_OK, i);

你的代码看起来不错。确保在第二个活动开始时始终调用
setResult(RESULT\u OK,i)

能否显示调用其他活动的代码部分,以及从第二个活动返回数据的代码部分?此代码很好,但请显示启动第二个活动的代码。我认为您在启动第二个活动时完成了当前活动,这就是为什么会调用list onCreate(),并且列表大小始终为1。根据我的猜测,返回结果不一定会被调用。你确定每当第二个活动开始时,它必须返回一个非空字符串吗?我找不到这样的代码解决方案,所以我采用了另一种更实用但不太优雅的方法。我将整个ArrayList发送到第二个活动,该活动添加一个新字符串并返回整个ArrayList。也许这不太妙,但在这种情况下,我希望ArrayList的大小不会超过10或20个最大值。
    Intent i = new Intent();
    String rule = someOperations();
    i.putExtra(S.RULE, rule);
    setResult(RESULT_OK, i);