manojo wrote:I don't have the android.net.ContentURI class. Has there been a modification in the specs?
Manojo
Hello,
Just Import
Import com.android.net.Uri;
In the code user Uri.parse instead of ContentURI()


Intent myIntent = new Intent(android.content.Intent.VIEW_ACTION, AlertDialog.[b]show[/b](this,"Question", "Do you want to open that file?n"
+ aDirectory.getName(),
"OK", okButtonListener,
"Cancel", cancelButtonListener, false, null); int selectionRowID = (int) this.getSelectionRowID();
new AlertDialog.Builder(this)
.setTitle("Question")
.setMessage("Do you want to open that file?n"+ aDirectory.getName())
.setPositiveButton("OK", okButtonListener)
.setNegativeButton("Cancel", cancelButtonListener)
.show();ListActivity.getSelectionRowId() removed from API
Detailed Problem Description:
ListActivity.getSelectionRowId() is gone
Solution:
Use ListActivity.getSelectedItemId() instead.
Notes:
Note that this call may also return no selection (-1) more when the emulator or device is in touch mode. More error checking may be required as a result.
int selectionRowID = (int) this.getSelectedItemId();
package [NameOfYourPackage];
import java.io.File;
import java.util.ArrayList;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class AndroidFileBrowser extends ListActivity {
private enum DISPLAYMODE{ ABSOLUTE, RELATIVE; }
private final DISPLAYMODE displayMode = DISPLAYMODE.ABSOLUTE;
private ArrayList<String> directoryEntries = new ArrayList<String>();
private File currentDirectory = new File("/");
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// setContentView() gets called within the next line,
// so we do not need it here.
browseToRoot();
}
/**
* This function browses to the
* root-directory of the file-system.
*/
private void browseToRoot() {
browseTo(new File("/"));
}
/**
* This function browses up one level
* according to the field: currentDirectory
*/
private void upOneLevel(){
if(this.currentDirectory.getParent() != null)
this.browseTo(this.currentDirectory.getParentFile());
}
private void browseTo(final File aDirectory){
if (aDirectory.isDirectory()){
this.currentDirectory = aDirectory;
fill(aDirectory.listFiles());
}else{
OnClickListener okButtonListener = new OnClickListener(){
// @Override
public void onClick(DialogInterface arg0, int arg1) {
// Lets start an intent to View the file, that was clicked...
Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("file://" + aDirectory.getAbsolutePath()));
startActivity(myIntent);
}
};
OnClickListener cancelButtonListener = new OnClickListener(){
// @Override
public void onClick(DialogInterface arg0, int arg1) {
// Do nothing
}
};
new AlertDialog.Builder(this)
.setTitle("Question")
.setMessage("Do you want to open that file?n"+ aDirectory.getName())
.setPositiveButton("OK", okButtonListener)
.setNegativeButton("Cancel", cancelButtonListener)
.show();
}
}
private void fill(File[] files) {
this.directoryEntries.clear();
// Add the "." and the ".." == 'Up one level'
try {
Thread.sleep(10);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
this.directoryEntries.add(".");
if(this.currentDirectory.getParent() != null)
this.directoryEntries.add("..");
switch(this.displayMode){
case ABSOLUTE:
for (File file : files){
this.directoryEntries.add(file.getPath());
}
break;
case RELATIVE: // On relative Mode, we have to add the current-path to the beginning
int currentPathStringLenght = this.currentDirectory.getAbsolutePath().length();
for (File file : files){
this.directoryEntries.add(file.getAbsolutePath().substring(currentPathStringLenght));
}
break;
}
ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this,
R.layout.file_row, this.directoryEntries);
this.setListAdapter(directoryList);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
int selectionRowID = (int) this.getSelectedItemId();
String selectedFileString = this.directoryEntries.get(selectionRowID);
if (selectedFileString.equals(".")) {
// Refresh
this.browseTo(this.currentDirectory);
} else if(selectedFileString.equals("..")){
this.upOneLevel();
} else {
File clickedFile = null;
switch(this.displayMode){
case RELATIVE:
clickedFile = new File(this.currentDirectory.getAbsolutePath()
+ this.directoryEntries.get(selectionRowID));
break;
case ABSOLUTE:
clickedFile = new File(this.directoryEntries.get(selectionRowID));
break;
}
if(clickedFile != null)
this.browseTo(clickedFile);
}
}
}





Users browsing this forum: No registered users and 6 guests