Acceder

Ver la Versión Completa : [ CONSULTA ] Obtener en un String el valor de un Array en una de terminada posicion.


RCDepor
11/06/12, 11:56:50
Buenas, ando probando cosas de programación android y tengo una duda, como obtener en un String el valor de un Array en una de terminada posicion.

Supongamos que que el Array es String[] datos = {"Hola","Adios","Htcmania"}; y esto se visualiza en Listview.

Lo que quiero que la aplicación haga es que al pulsar en Hola, Adiós... se visualice menú de compartir de android (Esto ya me funciona) pero no se como pasarle ese valor.

Os dejor una parte del codigo a ver si alquien me puede ayudar:

setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTR A_TEXT, "Text");
sharingIntent.putExtra(android.content.Intent.EXTR A_SUBJECT, "Subject");
startActivity(Intent.createChooser(sharingIntent, "Share using"));
}
});

Mi idea es crear una variable String valor = new... y después poner sharingIntent.setType("valor") por eso pregunto como paso a la variable valor el contenido del array en una determinada posición?

kriogeN
11/06/12, 12:38:06
Pues puedes hacerlo de 2 formas,

Suponiendo que el ListView esté compuesto por TextViews, que es el caso por defecto, lo único que tendrías que hacer es:

TextView t = (TextView)view;
String s = t.getText().toString();

También puedes hacer otra cosa, si la variable datos es global, puedes acceder a ella mediante:

datos[position]

Aunque cuidado, porque si el ListView lo tienes configurado para que se reutilice al scrollear la primera posición siempre va a ser la 0, así que es mejor la primera opción.

RCDepor
11/06/12, 13:19:58
Gracias por la respuesta, la primera opción funciona perfectamente, dejo el código por se alguien lo necesita en el futuro.


TextView sb=(TextView)view;
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
String shareBody = sb.getText().toString();
sharingIntent.putExtra(android.content.Intent.EXTR A_SUBJECT, "Awesome Quote!");
sharingIntent.putExtra(android.content.Intent.EXTR A_TEXT, shareBody);
startActivity(Intent.createChooser(sharingIntent, "Compartir"));

Sopanda
11/06/12, 15:29:22
para el caso este yo también utilizaría la primera opción y evitas complicaciones.