android - java如何实现对静态类的传值更改。
PHPz
PHPz 2017-04-18 09:27:19
0
1
545

android 中类似于 handler 或则 asynctask 这样的类,属于设置成静内部态类或则单独新建一个类,这个时候如果想要引用到其他的变量需要使用构造器的方式来传入参数,但是 java 中是值传递,类似于 int 类型的参数的值是无法改变的。
我的困难是

protected Integer doInBackground(Integer... mode) {
            if (!isCancelled()) {
                switch (mode[0]) {
                    case GET_LATEST: {
                        if ((temp = new MovieOkhttp(mcontext).
                                getPopularMovieResults(FIR_PAGE)) != null) {
                            mList.clear();
                            mList.addAll(temp);
                        }
                        mpage = 1;
                        break;
                    }
                    case GET_MORE: {
                        mpage = mpage + 1;
                        if ((temp = new MovieOkhttp(mcontext).
                                getPopularMovieResults(mpage)) != null) {
                            mList.addAll(temp);
                        }
                        break;
                    }
                }
            }

这里的 mpage 并不能改变 activity 中的 page 的值所以获取到的数据一直都是一样的。请问类似于这样的情况应该如何解决。
我想的方法是在调用 asynctask 的时候手动更改 page 的值,但是存在活动销毁的问题,同时这个方法也显的特别的乱。
请问有什么方法可以解决这样的问题吗,谢谢。

PHPz
PHPz

学习是最好的投资!

répondre à tous(1)
PHPzhong

Si vous ne pouvez pas transmettre une valeur, vous pouvez transmettre un rappel de handle ou de méthode. Cela devrait aller.


N'avez-vous pas mentionné l'utilisation d'un constructeur ? Votre constructeur ne peut pas transmettre de valeurs ordinaires mais peut transmettre des références d'objet, de la même manière que vous ajoutez des événements de réponse aux boutons.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal