cari

Rumah  >  Soal Jawab  >  teks badan

android - java如何实现对静态类的传值更改。

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 的值,但是存在活动销毁的问题,同时这个方法也显的特别的乱。
请问有什么方法可以解决这样的问题吗,谢谢。

PHPzPHPz2869 hari yang lalu546

membalas semua(1)saya akan balas

  • PHPz

    PHPz2017-04-18 09:29:19

    Jika anda tidak boleh menghantar nilai, anda boleh menghantar pemegang atau kaedah panggil balik Ini sepatutnya baik.


    Bukankah anda menyebut menggunakan pembina? Pembina anda tidak boleh melepasi nilai biasa tetapi boleh menghantar rujukan objek, sama seperti cara anda menambah peristiwa respons pada butang.

    balas
    0
  • Batalbalas