我正在使用 apache lib 编写一个小型 ftp 客户端。我正在返回 ArrayList 中的文件列表
import java.io.IOException;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import android.os.AsyncTask;
import android.util.Log;
public class myftpTask extends AsyncTask<String, Void, List<FTPFile>> {
public FTPFile[] FTPFile;
FTPClient mFtp = new FTPClient();
@Override
protected List<FTPFile> doInBackground(String... params) {
List<FTPFile> myFiles = new ArrayList<FTPFile>();
// TODO Auto-generated method stub
try {
mFtp.connect(params[0], 21);
if (FTPReply.isPositiveCompletion(mFtp.getReplyCode())) {
mFtp.login(params[1], params[2]);
mFtp.enterLocalPassiveMode();
mFtp.changeWorkingDirectory("/public_html");
FTPFile files[] = mFtp.listFiles();
for (int i = 0; i < files.length; i++) { // does not enter here
//Log.d("F-> " , ((FTPFile) files[i]).getName().toString());
//myFiles.add((FTPFile) files[i]).getName().toString());
myFiles.add(files[i]);
}
Log.v("Files", myFiles.toString());
mFtp.disconnect();
}
} catch (SocketException e) {
try {
mFtp.disconnect();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//return 1;
return myFiles;
}
}
我像这样收到它
import java.util.List;
import org.apache.commons.net.ftp.FTPFile;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
@SuppressWarnings("unchecked")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv = (ListView) findViewById(R.id.listView1);
List<FTPFile> listofFiles;
listofFiles = (List<FTPFile>) new myftpTask().execute(
"*****", "*****", "******");
ArrayAdapter<FTPFile> arrayAdapter = new ArrayAdapter<FTPFile>(this,
android.R.layout.simple_list_item_1, listofFiles);
lv.setAdapter(arrayAdapter);
}
}
但是它抛出了一个异常,不能强制转换为列表。
哪里有问题?
问候