Android Open Source - texthem File Chooser From Project Back to project page texthem .
License The source code is released under:
GNU General Public License
If you think the Android project texthem listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package filechooser;
/ / w w w . j a v a 2 s . c o m
import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ListView;
import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import a2.marketingsms.R;
public class FileChooser extends ListActivity {
private File currentDir;
private FileArrayAdapter adapter;
private FileFilter fileFilter;
private File fileSelected;
private ArrayList<String> extensions;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
if (extras != null) {
if (extras.getStringArrayList("filterFileExtension" ) != null) {
extensions = extras.getStringArrayList("filterFileExtension" );
fileFilter = new FileFilter() {
@Override
public boolean accept(File pathname) {
return ((pathname.isDirectory()) || (pathname.getName().contains("." ) ? extensions.contains(pathname.getName().substring(pathname.getName().lastIndexOf("." ))) : false));
}
};
}
}
currentDir = new File ("/" ); //NOTE: change sdcard, default root
//currentDir = new File("/sdcard/");
fill(currentDir);
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if ((/* NOTE: always can do back*/ true || (!currentDir.getName().equals("sdcard" ))) && (currentDir.getParentFile() != null)) {
currentDir = currentDir.getParentFile();
fill(currentDir);
} else {
finish();
}
return false;
}
return super.onKeyDown(keyCode, event);
}
private void fill(File f) {
File [] dirs = null;
if (fileFilter != null)
dirs = f.listFiles(fileFilter);
else
dirs = f.listFiles();
String currentName = (f.getName().length()>0) ? f.getName() : "/" ;
this.setTitle(getString(R.string.currentDir) + ": " + currentName);
List<Option> dir = new ArrayList<Option>();
List<Option> fls = new ArrayList<Option>();
try {
for (File ff : dirs) {
if (ff.isDirectory() && !ff.isHidden())
dir.add(new Option(ff.getName(), getString(R.string.folder), ff
.getAbsolutePath(), true, false));
else {
if (!ff.isHidden())
fls.add(new Option(ff.getName(), getString(R.string.fileSize) + ": "
+ ff.length(), ff.getAbsolutePath(), false, false));
}
}
} catch (Exception e) {
}
Collections.sort(dir);
Collections.sort(fls);
dir.addAll(fls);
if (/* NOTE: always can do back*/ true || !f.getName().equalsIgnoreCase("sdcard" )) {
if (f.getParentFile() != null)
dir.add(0, new Option(getString(R.string.currentDir)+": " +f.getName(),getString(R.string.parentDirectory), f.getParent(), false, true));
}
adapter = new FileArrayAdapter(FileChooser.this, R.layout.file_view,
dir);
this.setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Option o = adapter.getOption(position);
if (o.isFolder() || o.isParent()) {
currentDir = new File (o.getPath());
fill(currentDir);
} else {
//onFileClick(o);
fileSelected = new File (o.getPath());
Intent intent = new Intent();
intent.putExtra("fileSelected" , fileSelected.getAbsolutePath());
setResult(Activity.RESULT_OK, intent);
finish();
}
}
}
Java Source Code List a2.marketingsms.ApplicationTest.java a2.marketingsms.SelectList.java a2.marketingsms.Texthem.java a2.marketingsms.components.ContactImporter.java a2.marketingsms.components.DialogHandler.java a2.marketingsms.components.MyProgressDialog.java a2.marketingsms.components.SMSSender.java a2.marketingsms.model.Contact.java a2.marketingsms.model.TemplateText.java au.com.bytecode.opencsv.CSVIterator.java au.com.bytecode.opencsv.CSVParserBuilder.java au.com.bytecode.opencsv.CSVParser.java au.com.bytecode.opencsv.CSVReaderBuilder.java au.com.bytecode.opencsv.CSVReader.java au.com.bytecode.opencsv.CSVWriter.java au.com.bytecode.opencsv.ResultSetHelperService.java au.com.bytecode.opencsv.ResultSetHelper.java com.danielme.blog.demo.listviewcheckbox.CustomArrayAdapter.java com.danielme.blog.demo.listviewcheckbox.DontPressWhenPressParentCheckBox.java com.danielme.blog.demo.listviewcheckbox.Row.java filechooser.FileArrayAdapter.java filechooser.FileChooser.java filechooser.Option.java org.mozilla.universalchardet.CharsetListener.java org.mozilla.universalchardet.Constants.java org.mozilla.universalchardet.UniversalDetector.java org.mozilla.universalchardet.prober.Big5Prober.java org.mozilla.universalchardet.prober.CharsetProber.java org.mozilla.universalchardet.prober.EUCJPProber.java org.mozilla.universalchardet.prober.EUCKRProber.java org.mozilla.universalchardet.prober.EUCTWProber.java org.mozilla.universalchardet.prober.EscCharsetProber.java org.mozilla.universalchardet.prober.GB18030Prober.java org.mozilla.universalchardet.prober.HebrewProber.java org.mozilla.universalchardet.prober.Latin1Prober.java org.mozilla.universalchardet.prober.MBCSGroupProber.java org.mozilla.universalchardet.prober.SBCSGroupProber.java org.mozilla.universalchardet.prober.SJISProber.java org.mozilla.universalchardet.prober.SingleByteCharsetProber.java org.mozilla.universalchardet.prober.UTF8Prober.java org.mozilla.universalchardet.prober.contextanalysis.EUCJPContextAnalysis.java org.mozilla.universalchardet.prober.contextanalysis.JapaneseContextAnalysis.java org.mozilla.universalchardet.prober.contextanalysis.SJISContextAnalysis.java org.mozilla.universalchardet.prober.distributionanalysis.Big5DistributionAnalysis.java org.mozilla.universalchardet.prober.distributionanalysis.CharDistributionAnalysis.java org.mozilla.universalchardet.prober.distributionanalysis.EUCJPDistributionAnalysis.java org.mozilla.universalchardet.prober.distributionanalysis.EUCKRDistributionAnalysis.java org.mozilla.universalchardet.prober.distributionanalysis.EUCTWDistributionAnalysis.java org.mozilla.universalchardet.prober.distributionanalysis.GB2312DistributionAnalysis.java org.mozilla.universalchardet.prober.distributionanalysis.JISDistributionAnalysis.java org.mozilla.universalchardet.prober.distributionanalysis.SJISDistributionAnalysis.java org.mozilla.universalchardet.prober.sequence.BulgarianModel.java org.mozilla.universalchardet.prober.sequence.CyrillicModel.java org.mozilla.universalchardet.prober.sequence.GreekModel.java org.mozilla.universalchardet.prober.sequence.HebrewModel.java org.mozilla.universalchardet.prober.sequence.Ibm855Model.java org.mozilla.universalchardet.prober.sequence.Ibm866Model.java org.mozilla.universalchardet.prober.sequence.Koi8rModel.java org.mozilla.universalchardet.prober.sequence.Latin5BulgarianModel.java org.mozilla.universalchardet.prober.sequence.Latin5Model.java org.mozilla.universalchardet.prober.sequence.Latin7Model.java org.mozilla.universalchardet.prober.sequence.MacCyrillicModel.java org.mozilla.universalchardet.prober.sequence.SequenceModel.java org.mozilla.universalchardet.prober.sequence.Win1251BulgarianModel.java org.mozilla.universalchardet.prober.sequence.Win1251Model.java org.mozilla.universalchardet.prober.sequence.Win1253Model.java org.mozilla.universalchardet.prober.statemachine.Big5SMModel.java org.mozilla.universalchardet.prober.statemachine.CodingStateMachine.java org.mozilla.universalchardet.prober.statemachine.EUCJPSMModel.java org.mozilla.universalchardet.prober.statemachine.EUCKRSMModel.java org.mozilla.universalchardet.prober.statemachine.EUCTWSMModel.java org.mozilla.universalchardet.prober.statemachine.GB18030SMModel.java org.mozilla.universalchardet.prober.statemachine.HZSMModel.java org.mozilla.universalchardet.prober.statemachine.ISO2022CNSMModel.java org.mozilla.universalchardet.prober.statemachine.ISO2022JPSMModel.java org.mozilla.universalchardet.prober.statemachine.ISO2022KRSMModel.java org.mozilla.universalchardet.prober.statemachine.PkgInt.java org.mozilla.universalchardet.prober.statemachine.SJISSMModel.java org.mozilla.universalchardet.prober.statemachine.SMModel.java org.mozilla.universalchardet.prober.statemachine.UCS2BESMModel.java org.mozilla.universalchardet.prober.statemachine.UTF8SMModel.java