Android 在AsyncTask中传递多个不同类型的变量
我有一个AsyncTask,在doInBackground()中,我希望调用publishProgress()并向它传递多个不同类型的变量,比如一个字符串和一个整数。我该怎么做?我尝试定义onProgressUpdate(对象…值),然后通过publishProgress(StringVar,IntVar)调用它,然后在onProgressUpdate()中,我尝试通过值[0]和值[1]访问它们,但没有成功 我怎样才能做到这一点Android 在AsyncTask中传递多个不同类型的变量,android,android-asynctask,Android,Android Asynctask,我有一个AsyncTask,在doInBackground()中,我希望调用publishProgress()并向它传递多个不同类型的变量,比如一个字符串和一个整数。我该怎么做?我尝试定义onProgressUpdate(对象…值),然后通过publishProgress(StringVar,IntVar)调用它,然后在onProgressUpdate()中,我尝试通过值[0]和值[1]访问它们,但没有成功 我怎样才能做到这一点 谢谢。最简单的方法可能是定义一个包含字符串和整数的包装类。然后创建
谢谢。最简单的方法可能是定义一个包含字符串和整数的包装类。然后创建一个异步任务,该任务将此包装器用于其进度数据
public class Wrapper{
public final String mString;
public final Integer mInteger;
public Wrapper(String myString, Integer myInteger){
mString = myString;
mInteger = myInteger;
}
}
最简单的方法可能是定义一个接受字符串和整数的包装类。然后创建一个异步任务,该任务将此包装器用于其进度数据
public class Wrapper{
public final String mString;
public final Integer mInteger;
public Wrapper(String myString, Integer myInteger){
mString = myString;
mInteger = myInteger;
}
}
使用类包装进度值:
class ProgressUpdate {
public final String detail;
public final int value;
public ProgressUpdate(String detail, int value) {
this.detail = detail;
this.value = value;
}
}
然后,发布您的进度:
publishProgress(new ProgressUpdate(detail, value));
使用类包装进度值:
class ProgressUpdate {
public final String detail;
public final int value;
public ProgressUpdate(String detail, int value) {
this.detail = detail;
this.value = value;
}
}
然后,发布您的进度:
publishProgress(new ProgressUpdate(detail, value));
我相信可以使用你目前的方法。您只需要将它们转换回原始类型。您的意思是保留“Object”类型,调用publishProgress(StringVar,IntVar),然后在onProgressUpdate中,将值[n]转换回原始类型?谢谢,我尝试过了,效果很好!我相信可以使用你目前的方法。您只需要将它们转换回原始类型。您的意思是保留“Object”类型,调用publishProgress(StringVar,IntVar),然后在onProgressUpdate中,将值[n]转换回原始类型?谢谢,我尝试过了,效果很好!