【问题标题】:ArrayList gets clear after coming back from another activity从另一个活动回来后,ArrayList 变得清晰
【发布时间】:2013-06-17 15:13:01
【问题描述】:

这很奇怪,因为昨天这段代码可以工作,但今天不行。我很确定我没有改变任何东西。

问题是我一开始有一个空的 ArrayList。然后我调用另一个活动,该活动将为前一个活动提供一个我添加到 ArrayList 中的字符串。这个 ArrayList 的内容被用来填充一个 ListView。

问题是每次我启动新 Activity 并返回一个新字符串时,我的 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(this, ActivityAddRule.class);     
startActivityForResult(i, S.REQUEST_CODE_0);

我从另一个方法返回第二个活动的数据,如下所示:

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

【问题讨论】:

  • 您能否显示调用另一个活动的代码部分,以及您从第二个活动返回数据的位置?
  • 这段代码很好,但请告诉我启动第二个活动的代码。我认为您在启动第二个活动时完成了当前活动,这就是为什么调用 list onCreate() 并且列表大小始终为 1
  • 据我猜测,不一定会调用返回结果。你确定它必须在第二个活动开始时返回一个非空字符串吗?
  • 我无法以这种方式找到代码的解决方案,因此我采用了其他更实用但不太优雅的方法。我将整个 ArrayList 发送到第二个 Activity,该 Activity 添加了一个新字符串并再次返回整个 ArrayList。也许它并不出色,但在这种情况下,我希望不要管理超过 10 或 20 的最大 ArrayList 大小。

标签: android listview arraylist android-activity android-arrayadapter


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 2021-03-15
    相关资源
    最近更新 更多