有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java AsyncTask将数组传递给onProgressUpdate()

我通过了一些指南,我知道如何像这样将许多参数传递到onProgressUpdate中

@Override
protected void doInBackground(Void... params){
publishProgress("a","b");
}

@Override 
protected void onProgressUpdate(String... params){

String passed1 = params[0];
String passed1 = params[1];


}

现在。有没有可能发送一个数组

像这样

@Override
    protected void doInBackground(Void... params){
     String[] values = new String[2];
     values[0]="c";
     values[1]="d";
    publishProgress("a","b",values);
    }

    @Override 
    protected void onProgressUpdate(String... params){

    String passed1 = params[0];
    String passed1 = params[1];
    String passed3 = params[3][0];
    String passed3 = params[3][1];


    }

因为这确实不起作用。 有什么解决办法吗?拜托


共 (2) 个答案

  1. # 1 楼答案

    代码:

    publishProgress("a","b",values);
    

    希望有一个签名

    protected void onProgressUpdate(String, String, String[])
    

    要传递数组,需要将所有值放在一起:

    String[] values = new String[4];
    values[0]="a";
    values[1]="b";
    values[2]="c";
    values[3]="d";
    publishProgress(values);
    
  2. # 2 楼答案

    你可以使用:

    int var1,var2,var3;
    publishProgress(var1,var2,var3,.....);
    

    在onProgressUpdate中:

    protected void onProgressUpdate(Integer... values){
    int a = values[0];
    int b = values[1];
    int c = values[.....].......
    

    可以与任何数据类型一起使用,您需要在第二个参数中提到,这是用于onProgressUpdate的

    public class MyTask extends AsyncTask<Void,**Integer**,String>