0

これが私のコードです:

package com.test.testing;

import java.io.File;
import java.util.ArrayList;
import java.util.Date;

import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Environment;
import android.text.Editable;
import android.text.TextWatcher;
import android.text.format.DateFormat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

public class PreviousTrip extends Fragment {
    int i;
    String k = "";

    @Override
    public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState ) {
        final RelativeLayout mFrame3 =  (RelativeLayout) inflater.inflate( R.layout.ptrip, container, false );

        File folder = new File(Environment.getExternalStorageDirectory() + "/tc/");
        ListView lv;
        ArrayList<String> FilesInFolder = GetFiles(folder);
        lv = (ListView) mFrame3.findViewById(R.id.lvFiles);

        lv.setAdapter(new ArrayAdapter<String>(this,
            android.R.layout.ptrip, FilesInFolder));

        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                // Clicking on items
             }
        });

        /*File[] filelist = folder.listFiles();
        String[] theNamesOfFiles = new String[filelist.length];
        if (filelist.length > 0) {
            for (i = 0; i < theNamesOfFiles.length; i++) {
                long lastTime = filelist[i].lastModified();
                String dateString = DateFormat.format("MM/dd/yyyy", new Date(lastTime)).toString();
                theNamesOfFiles[i] = filelist[i].getName();
                k = k + String.valueOf(theNamesOfFiles[i]) + " " + dateString + "\n";
            }
            Toast.makeText(getActivity(), k, Toast.LENGTH_SHORT).show();
        }
        else {
            Toast.makeText(getActivity(), "no files", Toast.LENGTH_SHORT).show();
        }*/

        return mFrame3;
    }

    public ArrayList<String> GetFiles(String DirectoryPath) {
        ArrayList<String> MyFiles = new ArrayList<String>();
        File f = new File(DirectoryPath);

        f.mkdirs();
        File[] files = f.listFiles();
        if (files.length == 0)
            return null;
        else {
            for (int i=0; i<files.length; i++) 
                MyFiles.add(files[i].getName());
        }

        return MyFiles;
    }
}

私の ptrip XML は次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:background="@drawable/bginset3" >

    <ListView
        android:id="@+id/lvFiles"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

    </ListView>

</RelativeLayout>

解決に役立つ次のエラーが表示されます。

ArrayList<String> FilesInFolder = GetFiles(folder); エラー:The method GetFiles(String) in the type PreviousTrip is not applicable for the arguments (File) 修正済み:ArrayList<String> FilesInFolder = GetFiles(folder.toString());

lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.ptrip, FilesInFolder)); エラー:ptrip cannot be resolved or is not a field

上記に加えて、次のようにPlayストアの「マイアプリ」のように各アイテムをカードビューに表示しようとしています:

ここに画像の説明を入力

4

2 に答える 2

1
ArrayList<String> FilesInFolder = GetFiles(folder); 
Error: The method GetFiles(String) in the type PreviousTrip is not applicable for the arguments (File) 
Fixed: ArrayList<String> FilesInFolder = GetFiles(folder.toString());

folder.getName()ではなく使用することをお勧めしますfolder.toString()

lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.ptrip, FilesInFolder)); 
Error: ptrip cannot be resolved or is not a field

まず、Android フレームワークの一部でandroid.R.layout.some_layoutある場合にのみ使用できます。some_layout

がレイアウトの 1 つである場合、このレイアウト内の をコンストラクターにR.layout.ptrip提供する必要があります。たとえば、初期化は次のようになります。idTextView

lv.setAdapter(new ArrayAdapter<String>(this, R.layout.ptrip,
                               R.id.some_textview_inside_layout_ptrip, FilesInFolder)); 

レイアウト ファイルptripに TextView しかない場合、次のエラーは発生しません。

    lv.setAdapter(new ArrayAdapter<String>(this, R.layout.ptrip, FilesInFolder));  
于 2013-08-04T04:17:55.753 に答える