首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android生命周期混乱

Android生命周期混乱
EN

Stack Overflow用户
提问于 2018-08-11 02:26:27
回答 1查看 70关注 0票数 0

更新以描述所请求的代码;更新在末尾。

我试图做一些看起来应该很简单的事情,但是Android生命周期似乎不像描述的那样有效。我认为这是我的误解,而不是Android中的一个bug!

我是Android的新手,在为Windows开发Java应用程序之后,我才开始熟悉Android生命周期,所以我仍然在为许多新的想法而奋斗,特别是生命周期。

我几乎完成了我的第一个应用程序,它是基于一个RecyclerView。它显示了一家小公司的一系列销售记录(每个记录代表一次销售)。用户可以单击FloatingActionButton来报告新的销售,也可以单击或编辑或删除单个记录上的图标,以更改销售的详细信息或将其全部删除。每一件事都有自己的活动。此外,还有一个SettingsActivity来显示设置。

其中一个设置允许用户从三种不同的日期格式中进行选择,以显示销售日期。当我退出设置(通过单击back按钮)时,我希望立即使用新更改的日期格式看到可见的行,但这并没有发生。到目前为止,我只需单击按钮就可以将我带到另一个活动中,然后在我到达时单击cancel按钮;回到我的主要活动时,我会看到新的日期格式。

我不觉得我的用户应该去其他的活动;简单地从设置返回应该立即改变日期。我开始研究Android生命周期。在阅读文档时,我应该重写onResume()方法,并向控制RecyclerView的适配器发出一个notifyDataChanged(),以使其使用新的日期格式重新绑定可见的行。

不幸的是,这对我所看到的一切都没有影响。这是我的onResume:

代码语言:javascript
运行
复制
    @Override
protected void onResume() {
    super.onResume();
    mAdapter.notifyDataSetChanged();
}

我是不是用错误的方法做了notifyDataSetChanged()?如果没有,为什么不起作用?如果是错误的方法,我应该重写哪种方法?

有什么特别好的文字或视频教程解释生命周期,我应该阅读或观看?

更新

日期格式是在我的SettingsActivity中设置的,这是SettingsActivity模板中提供的默认格式,适合我的需要。我所接触到的只是一般的设置。我用自己的六个设置替换了模板中的所有设置。一种是日期格式,默认为YYYY DD;还有两种选择。

我的主要活动是通过菜单选项调用SettingsActivity,它从默认的SharedPreferences中获取日期格式的值。这是因为我不想对ArrayList中的每一行查找一次日期格式的值,而是对ArrayList中的所有行只查找一次。我通过其构造函数将日期格式的值传递给Adapter。在OnBindViewHolder()中使用该格式来控制日期在各种销售记录上的出现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-14 05:22:36

为适配器定义一个set方法,

代码语言:javascript
运行
复制
public class MyAdapter extends RecyclerView.Adapter<AdapterContactList.ViewHolder> {

    private String dateFormat;
    .....
    public void setDateFormat(String dateFormat) {
        this.dateFormat = dateFormat;
    }
}

用户更改日期格式后,将其设置为适配器,然后通知数据进行更改。这意味着,您需要在notifyDataSetChanged方法之前设置新的日期格式;因为适配器不知道新值。

代码语言:javascript
运行
复制
@Override
protected void onResume() {
    super.onResume();
    String newDateFormat = getFromSharedPreferencesOrInstantly();
    mAdapter.setDateFormat(newDateFormat);
    mAdapter.notifyDataSetChanged();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51795946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档