android– 如何在公共类上使用静态变量在活动之间传递数据?

android– 如何在公共类上使用静态变量在活动之间传递数据?,第1张

概述我试图在公共类上使用静态变量来在活动之间传递它们.我这样做有一个罕见的问题.我给活动上的静态变量赋值.此活动调用GLSurfaceView并侦听屏幕方向更改.如果我给GLSurfaceView上的静态变量赋值,那么,一切正常,值存储,并且我可以在屏幕方向更改后再次调用onCreate方法时检索它们.

我试图在公共类上使用静态变量来在活动之间传递它们.

我这样做有一个罕见的问题.我给活动上的静态变量赋值.此活动调用GLSurfaceVIEw并侦听屏幕方向更改.

如果我给GLSurfaceVIEw上的静态变量赋值,那么,一切正常,值存储,并且我可以在屏幕方向更改后再次调用onCreate方法时检索它们.

问题是当我将值存储在GLSurfaceVIEw类之外的静态变量上时,在活动的ontouchListener方法中.这些值没有正确存储在静态变量上,因为当我尝试在GLSurfaceVIEw上访问它们时,这些值并不是它们所支持的值.

这是我的静态变量类:

public class Magazinestatus {//clase utilizada para almacenar variables estáticas.   static int currentPage=1; //página actual   //Valores originales cuando pasamos de un modo a otro, por ejemplo, de portrait a landscape.static float oScale=0.0f;static float oX=0.0f;static float oY=0.0f;static float oZrot=0;   static boolean modeChanged=false; //indica si hemos cambiado de modo (landscape/portrait)    }

这里我将值存储在我的活动类中(我做了一个调试,显然它们正确存储):

        for (int i=0;i<thumbnaillinearLayouts.size();i++){        final int auxIndex=i;        thumbnaillinearLayouts.get(i).setontouchListener(new OntouchListener(){            @OverrIDe            public boolean ontouch(VIEw v, MotionEvent event) {                Magazinestatus.currentPage=auxIndex;                System.out.println("Magazinestatus.currentPage: "+Magazinestatus.currentPage);                return true;            }                                       });    }

在这里,我试图在GLSurfaceVIEw类上检索这些值,并且值不正确,它正在检索原始初始值1,而不是之前存储的值.

currentPage=Magazinestatus.currentPage;     //cargo datos guardados antes del cambio de orIEntación

我做错了什么?

解决方法:

如果AndroID杀死并重新启动应用程序的进程,则静态变量将被分配为其默认值.您可能更好地使用SharedPreferences而不是静态变量:http://developer.android.com/guide/topics/data/data-storage.html#pref

总结

以上是内存溢出为你收集整理的android – 如何在公共类上使用静态变量在活动之间传递数据?全部内容,希望文章能够帮你解决android – 如何在公共类上使用静态变量在活动之间传递数据?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1115451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存