Android 创建要在片段中使用的对象的变通方法
在这个话题上,我也有类似的追求: 我理解创建类实例并使用它来解决问题。 问题是,通过我使用的API,我不允许创建第二个实例 是否可以在我的Android 创建要在片段中使用的对象的变通方法,android,fragment,instance,Android,Fragment,Instance,在这个话题上,我也有类似的追求: 我理解创建类实例并使用它来解决问题。 问题是,通过我使用的API,我不允许创建第二个实例 是否可以在我的片段中使用已在main活动中创建的对象 我已经尝试使用getter,但是我得到无法对非静态方法进行静态引用 试图更详细地解释这个问题 在我的MainActivity中,我正在通过object=API.createAPI_object()创建一个APIclass的对象(我被迫这样做,因为API构造函数是私有的) 因为 public static synchron
片段中使用已在main活动
中创建的对象
我已经尝试使用getter,但是我得到无法对非静态方法进行静态引用
试图更详细地解释这个问题
在我的MainActivity
中,我正在通过object=API.createAPI_object()创建一个APIclass的对象代码>(我被迫这样做,因为API构造函数是私有的)
因为
public static synchronized API createAPI_Object()
{
if (numberOfObject == 0)
{
numberOfObject++;
return new API();
}
else
{
return null;
}
}
我只能创建该对象的一个实例
但是现在我需要在我的Fragment.class
中使用对象的这个实例,我不知道如何使用,因为我无法创建一个新的实例,并且我不能使用main活动的实例(至少我不知道如何使用)不清楚你在问什么,但我猜是这样的:
当我通常遇到这个问题时,我设置了一个变量
private static Context mContext;
然后在我的onCreate()
方法(在我的片段中)中设置mContext=getActivity()
,然后每次都使用静态方法,而不是使用getActivity()
,我不能使用mContext
如果您可以发布代码并进一步解释您的问题,那将非常好。这是为了防止使用可能未创建的对象。如果它是在FragmentActivity中创建的,并且您不想将其引用到片段中的对象,那么正如描述所述,您需要进行静态引用。您可以在MainFragment静态中设置对象,并使用类名称(如MainActivity.object)访问它。以下是我如何在片段中处理MainActivity中的对象:
class MainActivity extends FragmentActivity{
MyObject mObject;
onCreate(){
mObject = new MyObject();
}
public MyObject getMyObject(){
return mObject;
}
}
class MyFragment extends Fragment{
onCreateView(){
MyObject o = ((MainActivity)getActivity()).getMyObject();
}
}
粘贴你的代码兄弟???嗨,你是用newInstance命令创建类的吗?如果是这样,您应该将该类放入列表中。在您可以获取现有类并对其执行所需操作后。((MainActivity)getActivity()).getInstanceYouWant()并在片段中使用它。Hi Fragments请参见下面的答案。这解决了我的问题:)我将尝试在我的主题中对其进行解释。由于我的公司规定,我不允许发布所有代码:(@Fraggles另一种方法是为这些对象创建一个管理器作为Singleton,只是为了给您多一点输入可能是另一种选择,但目前您处理它的方法是有效的:)