【发布时间】:2015-09-19 08:13:10
【问题描述】:
您好,我正在尝试使用Global Variable 传递一个值。我创建了一个类文件,将其扩展为Application,然后将其添加到我的Manifest。
public class MyApplication extends Application {}
之后我创建了一个扩展为BaseExpandableListAdapter 的Adapter Class,我搜索了如何设置和获取我创建的全局变量并找到了这个
((MyApplication) getActivity().getApplication()).setMy_id(my_id);
并且能够得到我使用这个的价值
Integer my_id = ((MyApplication) getActivity().getApplication()).getMy_id();
在我的Fragments 中,我可以使用我的getMy_id() 方法,但是将它放在BaseExpandableListAdapter 中时,getActivity() 中出现错误。我已经尝试过使用this,但它仍然显示Cannot resolve method getApplication(),有没有其他方法可以获取我的全局变量的值。
我这样做是因为我试图将Cursor 用于我的ListView。我想创建一个Expandable ListView,其中数据来自我的数据库,而我的Cursor 有一个参数,它的WHERE 条件将使用我的全局变量中的数据。
之所以将其用作全局变量,是因为我在不同的Fragments 中使用此数据,它不是静态的,它的值取决于所选项目。
提前谢谢你。
【问题讨论】:
-
发布一些代码并准确解释您要做什么。我不太明白。我可能是错的,因为我不知道你想在这里做什么以及为什么,但这似乎不是最佳做法。
-
如果它是一个全局变量,为什么不将其设为静态并直接引用它。我一定是错过了什么?
-
我无法将其设为静态,因为每当您从列表视图中单击时,id 都会发生变化,并将转到另一个列表视图,所选项目的 id 将传递给另一个列表视图。
标签: java android adapter expandablelistadapter