在 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
的值,但是存在活动销毁的问题,同时这个方法也显的特别的乱。
请问有什么方法可以解决这样的问题吗,谢谢。
不能传值可以传handle或者方法回调啊,这样应该可以吧。
你不是说到使用构造函数吗?你构造函数不能传普通的值可以传对象引用,类似你给按钮添加响应事件。