Item.java es el TAO para el item de la lista... tiene la ruta, el nombre y la imagen ThirdActivity.java es la actividad donde se encuentra el filechooser de imagenes SecondActivity.java se mueven las imagenes a una carpeta predefinida MainActivity.java es a que maneja todo
Created
September 13, 2018 05:00
-
-
Save MacoChave/f3c9b727a90d2e1fa5b8ff43465fc6bf to your computer and use it in GitHub Desktop.
File Chooser
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.macochave.filechooser; | |
/** | |
* Created by marco on 25/09/17. | |
*/ | |
public class Item | |
{ | |
private int imagenes; | |
private String pathImage; | |
private String titulo, subTitulo; | |
public Item() { | |
} | |
public Item(int imagenes, String pathImage, String titulo, String subTitulo) { | |
this.imagenes = imagenes; | |
this.pathImage = pathImage; | |
this.titulo = titulo; | |
this.subTitulo = subTitulo; | |
} | |
public int getImagenes() { | |
return imagenes; | |
} | |
public void setImagenes(int imagenes) { | |
this.imagenes = imagenes; | |
} | |
public String getTitulo() { | |
return titulo; | |
} | |
public void setTitulo(String titulo) { | |
this.titulo = titulo; | |
} | |
public String getSubTitulo() { | |
return subTitulo; | |
} | |
public String getPathImage() { | |
return pathImage; | |
} | |
public void setPathImage(String pathImage) { | |
this.pathImage = pathImage; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.macochave.filechooser; | |
import android.content.Context; | |
import android.net.Uri; | |
import android.util.Log; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.BaseAdapter; | |
import android.widget.ImageView; | |
import android.widget.TextView; | |
import java.util.ArrayList; | |
/** | |
* Created by marco on 25/09/17. | |
*/ | |
public class ListViewAdapter extends BaseAdapter { | |
private ArrayList<Item> items; | |
private Context context; | |
private LayoutInflater inflater; | |
public ListViewAdapter() { | |
} | |
public ListViewAdapter(ArrayList<Item> items, Context context) { | |
this.items = items; | |
this.context = context; | |
} | |
@Override | |
public int getCount() { | |
return items.size(); | |
} | |
@Override | |
public Object getItem(int i) { | |
return items.get(i); | |
} | |
@Override | |
public long getItemId(int i) { | |
return i; | |
} | |
@Override | |
public View getView(int i, View view, ViewGroup viewGroup) { | |
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); | |
View vistaItem = inflater.inflate(R.layout.layout_item, viewGroup, false); | |
ImageView imagen = vistaItem.findViewById(R.id.vwImage); | |
TextView titulo = vistaItem.findViewById(R.id.txtTitulo); | |
TextView subTitulo = vistaItem.findViewById(R.id.txtSubTitulo); | |
imagen.setImageResource(items.get(i).getImagenes()); | |
titulo.setText(items.get(i).getTitulo()); | |
subTitulo.setText(items.get(i).getSubTitulo()); | |
if (items.get(i).getPathImage().length() > 0) { | |
imagen.setImageURI(Uri.parse(items.get(i).getPathImage())); | |
} | |
return vistaItem; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.macochave.filechooser; | |
import android.content.Context; | |
import android.os.Environment; | |
import android.support.v7.app.AppCompatActivity; | |
import android.os.Bundle; | |
import android.util.Log; | |
import android.view.View; | |
import android.widget.Button; | |
import android.widget.TextView; | |
import java.io.BufferedReader; | |
import java.io.File; | |
import java.io.FileInputStream; | |
import java.io.FileOutputStream; | |
import java.io.InputStream; | |
import java.io.InputStreamReader; | |
import java.io.OutputStreamWriter; | |
public class MainActivity extends AppCompatActivity implements View.OnClickListener { | |
private Button btnRdMemoInter, btnWMemoInter, btnRdSD, btnWSD, btnRdProgram; | |
private TextView txtTexto; | |
private boolean sdDisponible = false; | |
private boolean sdAccesoEscritura = false; | |
/* | |
* FUENTES | |
* https://es.icons8.com | |
* https://www.flaticon.es/autores/smashicons | |
*/ | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
btnRdMemoInter = (Button) findViewById(R.id.btnRdMemoInt); | |
btnWMemoInter = (Button) findViewById(R.id.btnWMemoInt); | |
btnRdSD = (Button) findViewById(R.id.btnRdSD); | |
btnWSD = (Button) findViewById(R.id.btnWSD); | |
btnRdProgram = (Button) findViewById(R.id.btnRdProgram); | |
txtTexto = (TextView) findViewById(R.id.txtTexto); | |
btnRdMemoInter.setOnClickListener(this); | |
btnWMemoInter.setOnClickListener(this); | |
btnRdSD.setOnClickListener(this); | |
btnWSD.setOnClickListener(this); | |
btnRdProgram.setOnClickListener(this); | |
String estadoSD = Environment.getExternalStorageState(); | |
/* | |
* HAY TARJETA SD INSERTADA | |
* TARJETA SD CON PERMISOS DE LECTURA | |
*/ | |
sdDisponible = estadoSD.equals(Environment.MEDIA_MOUNTED) ? true : false; | |
sdAccesoEscritura = estadoSD.equals(Environment.MEDIA_MOUNTED_READ_ONLY) ? true : false; | |
} | |
@Override | |
public void onClick(View view) { | |
switch (view.getId()) | |
{ | |
case R.id.btnRdMemoInt: | |
try { | |
BufferedReader reader = | |
new BufferedReader(new InputStreamReader( | |
openFileInput("meminterna.txt") | |
)); | |
String texto = reader.readLine(); | |
txtTexto.setText(texto); | |
reader.close(); | |
} | |
catch (Exception ex) | |
{ | |
Log.e("Ficheros", ex.getMessage()); | |
} | |
break; | |
case R.id.btnWMemoInt: | |
try { | |
OutputStreamWriter writer = | |
new OutputStreamWriter( | |
openFileOutput("meminterna.txt", | |
Context.MODE_PRIVATE) | |
); | |
writer.write("Contenido del fichero de memoria interna."); | |
writer.close(); | |
} | |
catch (Exception ex) | |
{ | |
Log.e("Ficheros", ex.getMessage()); | |
} | |
break; | |
case R.id.btnRdSD: | |
if (sdDisponible) | |
{ | |
try { | |
File ruta_SD = Environment.getExternalStorageDirectory(); | |
File file = new File(ruta_SD.getAbsolutePath(), "ficheroSD.txt"); | |
BufferedReader reader = | |
new BufferedReader( | |
new InputStreamReader( | |
new FileInputStream(file) | |
) | |
); | |
String texto = reader.readLine(); | |
txtTexto.setText(texto); | |
reader.close(); | |
} | |
catch (Exception ex) | |
{ | |
Log.e("Ficheros", ex.getMessage()); | |
} | |
} | |
break; | |
case R.id.btnWSD: | |
if (sdDisponible && sdAccesoEscritura) | |
{ | |
try { | |
File ruta_SD = Environment.getExternalStorageDirectory(); | |
File file = new File(ruta_SD.getAbsolutePath(), "ficheroSD.txt"); | |
OutputStreamWriter writer = | |
new OutputStreamWriter( | |
new FileOutputStream(file) | |
); | |
writer.write("Contenido del fichero de la SD"); | |
writer.close(); | |
} | |
catch (Exception ex) | |
{ | |
Log.e("Ficheros", ex.getMessage()); | |
} | |
} | |
break; | |
case R.id.btnRdProgram: | |
try { | |
InputStream stream = | |
getResources().openRawResource(R.raw.ficheroraw); | |
BufferedReader reader = | |
new BufferedReader( | |
new InputStreamReader(stream) | |
); | |
String texto = reader.readLine(); | |
txtTexto.setText(texto); | |
reader.close(); | |
} | |
catch (Exception ex) | |
{ | |
Log.e("Ficheros", ex.getMessage()); | |
} | |
break; | |
default: | |
break; | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.macochave.filechooser; | |
import android.content.Intent; | |
import android.net.Uri; | |
import android.os.Bundle; | |
import android.os.Environment; | |
import android.support.v7.app.AppCompatActivity; | |
import android.util.Log; | |
import android.view.View; | |
import android.widget.Button; | |
import android.widget.ImageView; | |
import android.widget.TextView; | |
import java.io.BufferedReader; | |
import java.io.File; | |
import java.io.FileInputStream; | |
import java.io.FileOutputStream; | |
import java.io.FileReader; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.io.OutputStream; | |
public class SecondActivity extends AppCompatActivity implements View.OnClickListener | |
{ | |
private TextView txtSeleccion,txtTexto; | |
private Button btnBuscar, btnMover; | |
private ImageView imgImagen; | |
private String filename; | |
private String fullpath; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) | |
{ | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_second); | |
File file = new File(Environment.getExternalStorageDirectory() + "/inventario"); | |
file.mkdir(); | |
txtSeleccion = (TextView) findViewById(R.id.txtSelect); | |
txtTexto = (TextView) findViewById(R.id.txtTexto); | |
btnBuscar = (Button) findViewById(R.id.btnBuscar); | |
btnMover = (Button) findViewById(R.id.btnMover); | |
imgImagen = (ImageView) findViewById(R.id.imgImagen); | |
btnBuscar.setOnClickListener(this); | |
btnMover.setOnClickListener(this); | |
try | |
{ | |
Intent intent = getIntent(); | |
filename = intent.getExtras().getString("filename"); | |
fullpath = intent.getExtras().getString("fullpath"); | |
Log.i("filename", filename); | |
Log.i("fullpath", fullpath); | |
txtSeleccion.setText(filename); | |
imgImagen.setImageURI(Uri.parse(fullpath)); | |
} | |
catch (Exception ex) | |
{ | |
Log.e("GetIntent", ex.getMessage()); | |
} | |
} | |
@Override | |
public void onClick(View view) | |
{ | |
switch (view.getId()) | |
{ | |
case R.id.btnBuscar: | |
explorar(); | |
break; | |
case R.id.btnMover: | |
mover(); | |
break; | |
default: | |
break; | |
} | |
} | |
private void explorar() | |
{ | |
Intent intent = new Intent(this, ThirdActivity.class); | |
startActivity(intent); | |
} | |
private void mover() | |
{ | |
if (fullpath.length() > 0) | |
{ | |
try | |
{ | |
String fullname_destino = Environment.getExternalStorageDirectory() + "/inventario/" + filename; | |
Log.i("Copiar", fullname_destino); | |
Log.i("Copiar", fullpath); | |
InputStream inputStream = new FileInputStream(fullpath); | |
OutputStream outputStream = new FileOutputStream(fullname_destino); | |
byte[] buf = new byte[1024]; | |
int len; | |
while ((len = inputStream.read(buf)) > 0) | |
outputStream.write(buf, 0, len); | |
inputStream.close(); | |
outputStream.close(); | |
Log.i("Copiar", "Archivo copiado con éxito"); | |
} | |
catch (IOException ex) | |
{ | |
Log.e("Copiar", ex.getMessage()); | |
} | |
} | |
} | |
private void abrirArchivo() | |
{ | |
try { | |
File file = new File(filename); | |
if (file != null) | |
{ | |
Log.i("Open File", "Archivo abierto con éxito"); | |
FileReader reader = new FileReader(file); | |
BufferedReader bufferedReader = new BufferedReader(reader); | |
String texto = bufferedReader.readLine(); | |
String aux = ""; | |
while (texto != null) | |
{ | |
aux += texto; | |
texto = bufferedReader.readLine(); | |
} | |
txtTexto.setText(aux); | |
bufferedReader.close(); | |
} | |
else | |
{ | |
Log.e("Open File", "No se puede abrir el archivo"); | |
} | |
} | |
catch (Exception ex) | |
{ | |
Log.e("Open File", ex.getMessage()); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.macochave.filechooser; | |
import android.content.Intent; | |
import android.os.Bundle; | |
import android.os.Environment; | |
import android.support.v7.app.AppCompatActivity; | |
import android.util.Log; | |
import android.view.View; | |
import android.widget.AdapterView; | |
import android.widget.ListView; | |
import java.io.File; | |
import java.util.ArrayList; | |
public class ThirdActivity extends AppCompatActivity implements AdapterView.OnItemClickListener { | |
private String directorioRaiz; | |
private ListView lstLista; | |
private ArrayList<Item> items; | |
private ListViewAdapter adapter; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_third); | |
lstLista = (ListView) findViewById(R.id.lstList); | |
items = new ArrayList<>(); | |
directorioRaiz = Environment.getExternalStorageDirectory().getPath(); | |
Log.i("FileChooser", directorioRaiz); | |
listaArchivos(directorioRaiz); | |
lstLista.setOnItemClickListener(this); | |
} | |
private void listaArchivos(String directorio) | |
{ | |
File file = new File(directorio); | |
File[] files = file.listFiles(); | |
items.add( | |
new Item(R.drawable.carpeta, "", "Subir carpeta", "../") | |
); | |
for (File f : files) | |
{ | |
Item item = new Item( | |
R.drawable.carpeta, | |
"", | |
f.getName(), | |
f.getPath() | |
}; | |
if (f.isFile()) | |
{ | |
if (f.getPath().endsWith("jpg") || f.getPath().endsWith("jpeg") || f.getPath().endsWith("png")) | |
item.setPathImage(f.getPath()); | |
item.setImagenes(R.drawable.archivo); | |
} | |
items.add(item); | |
} | |
adapter = new ListViewAdapter(items, this); | |
lstLista.setAdapter(adapter); | |
} | |
@Override | |
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { | |
Item item = (Item) adapterView.getItemAtPosition(i); | |
File file = new File(item.getSubTitulo()); | |
if (file.isFile()) | |
{ | |
Log.i("FileChooser", item.getTitulo()); | |
Log.i("FileChooser", item.getSubTitulo()); | |
Intent intent = new Intent(this, SecondActivity.class); | |
intent.putExtra("filename", item.getTitulo()); | |
intent.putExtra("fullpath", item.getSubTitulo()); | |
startActivity(intent); | |
} | |
else | |
{ | |
Log.i("FileChooser", item.getTitulo()); | |
Log.i("FileChooser", item.getSubTitulo()); | |
adapter = null; | |
items.clear(); | |
lstLista.setAdapter(adapter); | |
listaArchivos(item.getSubTitulo()); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment