Forum zamknięte. Zapraszamy do grupy na Facebooku
Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Wyszukiwarka plików
08-13-2014, 04:17 AM (Ten post był ostatnio modyfikowany: 08-13-2014 04:20 AM przez Płoteck.)
Post: #1
Wyszukiwarka plików
Witam,

Mam problem gdyż nie wiem co zmienić w kodzie aplikacji, aby wyszukała na całej karcie sd wszytkie pliki o formacie ".obj" i wyświetliła tylko je bez zbędnych folderów itp.

Za wszelką pomoc dziękuje z góry.

Kod:

Pliki.java
Kod:
package searchfiles;

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

import pracadyp.arag.MainActivity;
import pracadyp.arag.R;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.ListView;

public class Pliki extends ListActivity {

    public final static String EXTRA_MESSAGE = "com.arturg.pracadyplomowa.MESSAGE";
    private File mCurrentNode = null;
    private File mLastNode = null;
    private File mRootNode = null;
    private ArrayList<File> mFiles = new ArrayList<File>();
    private ZnajdzPliki znaPlik = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pliki_okno);
        znaPlik = new ZnajdzPliki(this, R.layout.lista_wiersz, mFiles);
        setListAdapter(znaPlik);
        if (savedInstanceState != null) {
            mRootNode = (File) savedInstanceState.getSerializable("root_node");
            mLastNode = (File) savedInstanceState.getSerializable("last_node");
            mCurrentNode = (File) savedInstanceState
                    .getSerializable("current_node");
        }
        refreshFileList();
    }

    private void refreshFileList() {
        if (mRootNode == null)
            mRootNode = new File("/mnt/sdcard/");
        if (mCurrentNode == null)
            mCurrentNode = mRootNode;

        FilenameFilter filter = new MyFileFilter();

        mLastNode = mCurrentNode;
        File[] files = mCurrentNode.listFiles(filter);
        mFiles.clear();
        mFiles.add(mRootNode);
        mFiles.add(mLastNode);
        if (files != null) {

            for (int i = 0; i < files.length; i++)
                mFiles.add(files[i]);

        }

        znaPlik.notifyDataSetChanged();
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        outState.putSerializable("root_node", mRootNode);
        outState.putSerializable("last_node", mLastNode);
        super.onSaveInstanceState(outState);
    }

    @Override
    public void onListItemClick(ListView parent, View v, int position, long id) {
        File f = (File) parent.getItemAtPosition(position);
        if (position == 1) {
            if (mCurrentNode.compareTo(mRootNode) != 0) {
                mCurrentNode = f.getParentFile();
                refreshFileList();
            }
        } else if (f.isDirectory()) {
            mCurrentNode = f;
            refreshFileList();
        } else {
            // Toast.makeText(this, "You selected: "+f.getName()+"!",
            // Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(this, MainActivity.class);
            String message = f.getAbsolutePath();

            intent.putExtra(EXTRA_MESSAGE, message);
            startActivity(intent);
        }
    }
}


ZnajdzPliki.java
Kod:
package searchfiles;

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

import pracadyp.arag.R;
import android.content.Context;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.MimeTypeMap;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class ZnajdzPliki extends ArrayAdapter<File> {

    private ArrayList<File> items;
    private Context c = null;

    public ZnajdzPliki(Context context, int textViewResourceId,
            ArrayList<File> items) {
        super(context, textViewResourceId, items);
        this.items = items;
        this.c = context;
    }

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

        View v = convertView;

        if (v == null) {
            LayoutInflater vi = (LayoutInflater) c
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.lista_wiersz, null);
        }

        TextView filename = null;

        File f = items.get(position);

        if (f != null) {
            filename = (TextView) v.findViewById(R.id.filename);

        }

        if (filename != null) {
            filename.setText(f.getName());

        }

        return v;
    }

}

MyFileFilter.java

Kod:
package searchfiles;

import java.io.File;
import java.io.FilenameFilter;

public class MyFileFilter implements FilenameFilter {

    @Override
    public boolean accept(File directory, String fileName) {
        if (fileName.toLowerCase().endsWith(".obj")) {
            return true;
        } else {
            return false;
        }
    }
}
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości