Java 如何在android中使用listview显示远程ftp的文件列表

Java 如何在android中使用listview显示远程ftp的文件列表,java,android,ftp,Java,Android,Ftp,您好,我正在尝试在android应用程序的ListView中显示文件和文件夹列表,但我无法做到这一点。我成功显示SD卡文件,但无法显示ftp服务器上的文件。有人能帮我吗 FTPFile[] list = client.list(); String[] fileNames = new String[list.length]; for (int i = 0; i < list.length; i++) { fi

您好,我正在尝试在android应用程序的ListView中显示文件和文件夹列表,但我无法做到这一点。我成功显示SD卡文件,但无法显示ftp服务器上的文件。有人能帮我吗

 FTPFile[] list = client.list();
            String[] fileNames = new String[list.length];
            for (int i = 0; i < list.length; i++) {

                fileNames[i] = list[i].getName();
                fileList[i]=list[i].getName();
FTPFile[]list=client.list();
String[]filename=新字符串[list.length];
for(int i=0;i

现在我想在阵列适配器中使用此阵列,但不知道如何使用?尝试了几种方法,但应用程序强制停止。

您可以按照此现有帖子进行操作。它们也使用字符串阵列。如果不需要,您可以忽略图像视图

这是一个简单的自定义适配器代码,您可以使用它在一行中显示图像和文本视图:

public class myDynAdap extends ArrayAdapter<String> {
    String[] list;
    Context mContext; // ADD THIS to keep a context

    public myDynAdap(Context context, int textViewResourceId,String[] objects) {
        super(context, textViewResourceId, objects);
        this.mContext = context;
        list = objects;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;

        if (row == null) {

            LayoutInflater inflater = ((Activity) mContext).getLayoutInflater(); 
            row = inflater.inflate(R.layout.yourRowLayout, parent,false);
        }

        TextView tv1 = (TextView) row.findViewById(R.id.textView);

        ImageView i = (ImageView) row.findViewById(R.id.imageView);
        tv1.setText(StringArray[position]);
        i.setImageDrawable(getResources().getDrawable(yourImageArrayId[position]));

        return row;

    }
}
公共类myDynAdap扩展了ArrayAdapter{
字符串[]列表;
Context mContext;//添加此项以保留上下文
公共myDynAdap(上下文上下文,int textViewResourceId,字符串[]对象){
超级(上下文、textViewResourceId、对象);
this.mContext=上下文;
列表=对象;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=转换视图;
if(行==null){
LayoutFlater充气器=((活动)mContext.getLayoutFlater();
行=充气机。充气(R.layout.yourRowLayout,父级,false);
}
TextView tv1=(TextView)row.findViewById(R.id.TextView);
ImageView i=(ImageView)row.findViewById(R.id.ImageView);
tv1.setText(StringArray[position]);
i、 setImageDrawable(getResources().getDrawable(yourImageArrayId[position]);
返回行;
}
}
使用以下xml代码在布局文件夹中添加xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="start" >

<ImageView
    android:id="@+id/imageView"
    android:layout_width="64dp"
    android:layout_height="48dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" />

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true" />


我会将这些字符串添加到ArrayList中,然后使用BaseAdapter。然后将适配器分配到listview。请您在回答问题时给出一点解释,因为我不知道如何正确操作,因为我对android非常陌生。