Hola a todos, tengo un pequeño problema:
Estoy intentando cargar un txt , y que este se lea cuando se pulsa un item de un listview. Pero no consigo que me lea el txt.
Este es mi código:
Código Java:
Ver originalMain Activity:
package com.m2c.articulosm2c;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
public class MainActivity extends Activity {
private EditText et1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Display a indeterminate progress bar on title bar
requestWindowFeature
(Window.
FEATURE_INDETERMINATE_PROGRESS); setContentView(R.layout.activity_main);
this.
listView = (ListView) findViewById
(R.
id.
listView); this.et1 = (EditText) findViewById(R.id.et1);
final List<Item> items=new ArrayList<Item>();
items.
add(new Item
(R.
drawable.
powerpoint,
"Tu powerpoint, mejor si le falta algo(Jul 2013)",
null,
(new File("/raw/tu_powerpoint_mejor_si_le_falta_algo1.txt"))));
// Sets the data behind this ListView
this.listView.setAdapter(new ItemAdapter(this, items));
// Register a callback to be invoked when an item in this AdapterView
// has been clicked
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@SuppressLint("SetJavaScriptEnabled")
@Override
public void onItemClick
(AdapterView
<?> adapter,
View view,
int position, long arg) {
File articulo
= items.
get(position
).
getArticulo();
et1.setText(leer(articulo));
//Pasar el articulo seleccionado y el texto corrrespondiente
}});
}
/** Metodo para leer archivo de texto
* @param archivo Ruta del archivo de texto en la carpeta ASSETS
* @throws FileNotFoundException
* */
{
Scanner sc;
String str
= "No se lee el txt"; try {
sc = new Scanner(texto);
while(sc.hasNextLine()){
str+=sc.nextLine();
}
e.printStackTrace();
}
return str;
}
/** Convierte bytes en texto
* @param inputStream de tipo InputStream
* */
{
byte[] bytes = new byte[4096];
int len=0;
while ((len=inputStream.read(bytes))>0 )
{
b.write(bytes,0,len);
}
return new String( b.
toByteArray(),
"UTF8"); }
//end: New code
}
A ver si me podeis echar una mano y por favor contestar que otras veces he escrito y no he recibido respuesta.
Muchas Gracias un saludo.