java - Android:在fragment类中,通过getter方法访问Activity类的变量,变量的值保持为0
问题描述
Activity类在onCreate方法中有一个整数,通过getIntent设置。
pos = getIntent().getIntExtra("position", -1);
-1 是 getIntExtra() 的默认值,“位置”是我将它存储在另一个类中的键。对于点击来说,这个值应该是动态的,而且确实如此。但是,在fragment类中通过activity的getpos()方法访问它时,总是返回0。为什么?
这是 Acitivity 类的 OnCreate 方法:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
pos = getIntent().getIntExtra("position", -1);}
这是 pos 的 Acitivity 类的 getter 方法:
public int get(){
return pos;
}
这是 Fragment 的 onCreateView 方法:
//an inflater
Activity my=(Activity) getActivity();
int posfrag = my.get();
我正在尝试通过此访问 Recycler View 的项目位置,但是这里的 posfrag 没有在片段中更新,尽管 pos 在 Activity 方法中正确更新。问题在于将该保留值传递给片段。
解决方案
尝试在 Fragment 内的 onActivityCreated() 方法中获取 pos 值。
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// retrieve your variable value here
}
推荐阅读
- android - 我正在使用 android 分页库,但不是以块的形式获取数据,而是一次性获取完整列表
- tcp - 在 JMeter 中为整个运行保持相同的 TCP 连接
- git - 什么是使用 URl 结帐
- google-analytics - 谷歌分析网络小部件
- javascript - 在 JavaScript 和 HTML 中,我怎样才能访问当前按钮所在的位置?
- database - 删除ORACLE DB中其他表中用作外键的表中的所有行
- javascript - 如何使用带有 RXJS 的对象将 Array 中的值(true 或 false 转换为 Yes 或 No)?
- sql - 如何遍历表格并获取单元格的值?(MVC)
- java - Java 练习:在网格中生成当前月份的日历输出
- ios - 从json解析三个对象的数组