Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 执行Asynctask时方法调用预期错误_Java_Android_Methods_Interface_Android Asynctask - Fatal编程技术网

Java 执行Asynctask时方法调用预期错误

Java 执行Asynctask时方法调用预期错误,java,android,methods,interface,android-asynctask,Java,Android,Methods,Interface,Android Asynctask,我试图通过创建接口从Asynctask返回值,但在执行Asynctask类时,给我方法调用时出现预期错误。 我在第longoperation(dir1,asyncTask1.execute()行中得到错误 我怎么修理它 public interface IAsyncTask { ArrayList<String> IAmFinished(ArrayList<File> arrayList) } public class MainActivity2 exten

我试图通过创建接口从Asynctask返回值,但在执行Asynctask类时,给我方法调用时出现预期错误。
我在第
longoperation(dir1,asyncTask1.execute()行中得到错误

我怎么修理它

public interface IAsyncTask {

    ArrayList<String> IAmFinished(ArrayList<File> arrayList)
 }

public class MainActivity2 extends AppCompatActivity implements IAsyncTask {

    public static ArrayList<File> fileList = new ArrayList<>();
    public static ArrayList<String> name = new ArrayList<>();
    Longoperation longoperation = new Longoperation(dir1,this);
    IAsyncTask asyncTask1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        dir1 = new File(Environment.getExternalStorageDirectory().getPath());
        longoperation(dir1, asyncTask1).execute();
        JazzyListView lv = (JazzyListView) findViewById(R.id.list);
        IAmFinished(fileList);

        lv.setAdapter(new ArrayAdapter<>(this,
                android.R.layout.simple_list_item_1, name));
    }

    @Override
    public ArrayList<String> IAmFinished(ArrayList<File> list) {
        for(int i=0;i< list.size();i++){
            name.add(list.get(i).getName());
        }
        return name;
    }

    private class Longoperation extends AsyncTask<File, Void, ArrayList<File>>{

        File dir;
        public IAsyncTask asyncTaskListener;

        public Longoperation(File dir,IAsyncTask asyncTaskListener) {
            this.dir = dir;
            this.asyncTaskListener = asyncTaskListener;
        }

        @Override
        protected ArrayList<File> doInBackground(File... params) {
            File listFile[] = dir.listFiles();
            if (listFile != null && listFile.length > 0) {
                for (int i = 0; i < listFile.length; i++) {

                    if (listFile[i].isDirectory()) {
                        doInBackground(listFile[i]);

                    } else {

                        boolean booleanpdf = false;
                        if (listFile[i].getName().endsWith(".zip") || listFile[i].getName().endsWith(".jar")) {

                            for (int j = 0; j < fileList.size(); j++) {
                                if (fileList.get(j).getName().equals(listFile[i].getName())) {
                                    booleanpdf = true;
                                } else {

                                }
                            }

                            if (booleanpdf) {
                                booleanpdf = false;
                            } else {
                                fileList.add(listFile[i]);

                            }
                        }
                    }
                }
            }
            return fileList;
        }

        public void onPostExecute(ArrayList<File> list) {
            asyncTaskListener.IAmFinished(list);
        }
    }
}
公共接口IAsyncTask{
ArrayList(ArrayList ArrayList)
}
公共类MainActivity2扩展AppCompatActivity实现IAsyncTask{
public static ArrayList fileList=new ArrayList();
public static ArrayList name=new ArrayList();
Longoperation Longoperation=新的Longoperation(dir1,this);
IAsyncTask异步任务1;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
dir1=新文件(Environment.getExternalStorageDirectory().getPath());
longoperation(dir1,asyncTask1.execute();
JazzyListView lv=(JazzyListView)findviewbyd(R.id.list);
完成(文件列表);
lv.setAdapter(新阵列适配器),
android.R.layout.simple_list_item_1,name));
}
@凌驾
公共ArrayList(ArrayList列表){
对于(int i=0;i0){
for(int i=0;i
您不能在使用时使用
长操作(dir1,asyncTask1)
。对象不是函数,所以不能像它们那样使用它

更改以下代码
Longoperation Longoperation=新的Longoperation(dir1,this)
长操作长操作
。然后更改
longoperation(dir1,asyncTask1.execute()
longoperation=新的longoperation(dir1,this)