PDA

Ver la Versión Completa : Ayuda para una aplicacion


cepillo
05/11/13, 23:20:42
Hola muy buenas necesito realizar una aplicacion que muestre un ListView diferente informacion de tiendas (El nombre).

Una vez seleccione una de ellas me debe de abrir una nueva Actividad o pantalla mostrando información detalla de dicha tienda.

Hasta ahora he conseguido que me muestre el Listview con las tiendas (de momento no almaceno nada mas)

Lo que quiero es que una vez seleccione llame a otra pantalla nueva y muestre el resto de la información de momento (el nombre)

No consigo hacerlo, en breve pondre el codigo ya que ahora mismo no dispongo de él.

tengo algo asi como
Intent intent = new Intent(this, detalles.class);
startActivity(intent);

pero al ejecutarlo y seleccionar me falla.

Un saludo espero poder poneros el codigo luego ya que estoy comenzando.

kriogeN
05/11/13, 23:41:46
No das muchas pistas, pero así de entrada, supongo que te falla al ejecutarse el código de la ejecución de la segunda Activity.

¿Has puesto la segunda Activity en el AndroidManifest?

cepillo
06/11/13, 00:59:56
Muchismas gracias kriogen, exactamente no me acordaba de que debia añadirlo, se nota la novatada.

Ya he conseguido pasar a otro activity, me surge otra duda.

Tengo que mostrar las tiendas en el listview, y la informacion detallada en el siguiente activity.

La duda es como puedo crear lo que es el objeto tienda (Nombre, direccion, telefono, etc)
seria un arrays pero solo crear uno que sea la estructura para todas las tiendas y a partir de dicha estructura cargar lo que es el campo nombre en el listview.

No se si me explicado mas o menos o entiendes lo que quiero hacer.

cepillo
06/11/13, 03:22:46
Bueno os pongo el codigo de lo que he podido avanzar.

Final ArrayList<tienda> datos = new ArrayList<tienda>();
datos.add(new tienda("Tienda de Lego","El puerto","654"));
datos.add(new tienda("Tienda de Libro","El puerto","654"));
datos.add(new tienda("Tienda de Juegos","El puerto","654"));
datos.add(new tienda("Tienda de Zapatos","El puerto","654"));
datos.add(new tienda("Tienda de Niños","El puerto","654"));
datos.add(new tienda("Tienda de Comida","El puerto","654"));
datos.add(new tienda("Tienda de Bebida","El puerto","654"));

ArrayAdapter<tienda> adaptador =new ArrayAdapter<tienda>(this, android.R.layout.simple_list_item_1, datos);

lista =(ListView) findViewById(R.id.lvLista);
lista.setAdapter(adaptador);

No se como puedo hacer para que me aparezca en el ListView solamente el nombre ya que me aparece com.proyecto.prueba.tienda@54f48008
y asi todos.

una vez selecciono uno tengo un toast y si me muestra correctamente el que quiero.

kriogeN
06/11/13, 12:11:32
Los ArrayAdapter están pensados sólo para usarse con String, así que lo que te está haciendo es hacerle un toString() a cada uno de los elementos en el array datos.

Para que no tengas que cambiar mucho tu código lo más fácil es añadir el método toString() (con @Override) a la clase tienda y que te devuelva el nombre de la tienda.

cepillo
06/11/13, 17:16:37
Hola de nuevo Kriogen, tengo creado el siguiente.

public String get_nombre() {
return vnombre;
}

Pero no consigo averiguar como ponerlo en el listview para que solo me aparezca el nombre y no lo el cifrado jiji.

Tengo todo ya realizado a excepcion de ese pequeño detalle.
de realizar un Linkify a una direccion ya que todos los demas telefono, mail me funcionan pero el de direccion no.

A ver si me orientas un poco que estoy algo perdido sobretodo en el listview.

direccion= (TextView) findViewById(R.id.tvDireccion);
Bundle bdireccion=getIntent().getExtras();
direccion.setText(bdireccion.getString("direccion"));
Linkify.addLinks(direccion, Linkify.MAP_ADDRESSES);

Este no me funciona
muchas gracias por tu tiempo y paciencia.

mocelet
06/11/13, 18:21:03
Haz lo que te ha dicho kriogeN... en la clase tienda crea un método que se llama toString() y devuelva el nombre de esa instancia de tienda.


@Override
public String toString(){
return vnombre;
}

Si se llama de otra forma y no toString, lo que te va a salir es el toString por defecto que es un identificador de la referencia del objeto.

cepillo
06/11/13, 19:08:58
Exacto muchisimas gracias todo perfecto a ver que mas problemas me van surgiendo.

Respesto al Linkify no puedes decirme que puede estar fallando.

kriogeN
06/11/13, 20:54:59
Para que Linkify detecte una dirección debe de ser bastante explícita y tener cierto formato, y no se si posiblemente estar funcionando el servicio NetworkLocator (en móviles a partir de Android 4.0 se buguea bastante y sólo se soluciona reiniciando el móvil).

Prueba poniendo esta dirección, que está comprobado que funciona:

436 Mayfield Ave, Stanford, CA

Si no te funciona, prueba reiniciando el móvil, si sigue sin funcionarte es que tu móvil no soporta Linkify (algunos móviles HTC no lo soportan fruto de una demanda de Apple, que decían que eso estaba patentado por ellos, pero al ser la demanda contra HTC sólo lo quitó HTC, no se si los móviles HTC nuevos vuelven a tenerlo o no, pero creo que si).

Si te funciona a la primera es que la dirección que has puesto es demasiado vaga.

cepillo
07/11/13, 13:44:21
Perfecto con esa dirección a funcionado, vale ahora algo que es bastante sencillo pero no encuentro el porque no me sale.

una vez tengo la actividy de descripcion ahora doy en el nombre y me voy a otro activity, hasta aqui perfecto, en este activity tiene que cargar una imagen, un icono de comentario y un texto con un comentario.

Lo que tengo hasta ahora:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:orientation="vertical" >

<ImageView
android:id="@+id/ivPrincipal"
android:layout_width="300dp"
android:layout_height="300dp"
android:src="@drawable/ic_launcher" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">

<ImageView
android:id="@+id/ivIcon"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginLeft="5dp"
android:src="@drawable/icon" />

<TextView
android:id="@+id/tvInformacion"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginRight="5dp"
/>

</LinearLayout>

</LinearLayout>





public class image extends Activity{

ImageView imagen,icono;
TextView informacion;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

imagen=(ImageView) findViewById(R.id.ivPrincipal);
icono =(ImageView) findViewById(R.id.ivIcon);
informacion=(TextView) findViewById(R.id.tvInformacion);

//informacion.setText("COMENTARIOS DE LA TIENDA");
}
}



Pero no me muestra nada en el nuevo activity, tengo las imagenes en todas las carpetas para las diferentes resoluciones.

remix_squall
08/11/13, 04:58:03
Deberías usar el foro de Galileo xD.

Parece que hay un compañero aquí que está haciendo el mismo curso que yo. Yo tampoco he podido averiguar el Linkify. Le he preguntado al profesor y me ha contestado esto:

"A la dirección agregale (en código de java) la ciudad y el país al que pertenece."

No entendí lo que dijo ...

cepillo
08/11/13, 08:26:41
Si es el mismo jaja yo puse la dirección de arriba que funciona perfectamente.

cepillo
08/11/13, 13:06:02
Tengo el siguiente problema com osabeis es un activity principal que llama a otro activity muestra informacion y este a su vez llama a otro donse se muestran 2 imagenes y 1 textview.

el ultimo para empezar no me muestra nada no se el porque, en un proyecto solo funciona perfectamente (he realizado clean y nada)

El problema viene tengo el array y la lista con todos los datos fotografia y comentario incluido.
public tienda (String vnombre, String vdireccion, String vtelefono, String vdiarios, String vsabados,String vdomingos,String vsitio, String vemail, int vimagen, String vcomentario) {

este esta en el principal.

en el siguiente recupero y muestro lo que necesito esto perfecto pero cuando llamo al de la fotografia no soy capaz de pasarle el comentario ni la imagen y como puedo recuperarla en el activity de fotografia.

cepillo
08/11/13, 13:09:04
Otra cosa yo paso la imagen desde el principal al siguiente activity asi:
int imagen = elegido.get_imagen();

Bundle bimg=new Bundle();
bimg.putInt("imagen", imagen);
data.putExtras(bimg);

Pero nose como recibirla en el segundo activity para visualizarla en imageView.

img= (ImageView) findViewById(R.id.ivPrincipal);
Bundle bimagen=getIntent().getExtras();
img.setImageResource(bimagen.getInt(img.get));

a ver si pueden ayudarme gracias

remix_squall
08/11/13, 13:32:54
El tema de la imagen no hay que complicarse tanto (además, es la más fácil de las 3 actividades), con que hagas la interfaz sencillita, con todos los datos ya puestos va bien. Para dicha imagen no hay que hacer ningún Bundle, además lo dice el mismo enunciado:

"El archivo de la imagen se coloca en /res/drawable-mdpi y se le especifica al ImageView android:src=@drawable/nombre".

No mandas en esa nueva actividad ni TextView, ni ImageView por ningún lado, el XML lo hace por sí sólo.

Por otro lado, el Linkify con MAP_ADDRESSES va perfectamente con el ejemplo que habéis dicho anteriormente arriba. Pero eso, sólo es una dirección americana. ¿Hay que usar algún tipo de patrón o qué? ... Yo he intentado hacerlo con Google.

PD: ¿Pensáis que han empezado el curso algo fuerte? Yo no me puedo quejar del curso porque ya sabía Java y Android, por lo que se me da de lujo xD. Pero he estado en otro curso (sobre Raspberry Pi) y cuando tocaron la parte de programación con Python y luego después con electrónica, lo explicaron todo desde cero ... para que la gente entendiera todo (y no, no fue tan aburrido como yo creía, era bastante interesante :D).

cepillo
08/11/13, 14:04:38
Respecto a lo de la imagen que se pone una imagen fija para todas las tiendas? yo creia que deberia ir cambiando dependiendo de la tienda que selecciones.

Yo ahora mismo la imagen la tengo correctamente (siendo fija hasta el activity 2 en eeste veo tanto la imagen como el comentario) ya es al 3º al que no soy capaz de pasarle el comentario al menos.

esto es lo que tengo en el segundo activity:

im = (ImageView) findViewById(R.id.ivPrincipal);
im.setImageResource(R.drawable.ic_launcher);

comentario= (TextView) findViewById(R.id.tvComentario);
Bundle bcomentario=getIntent().getExtras();
comentario.setText(bcomentario.getString("comentario"));

y se muestra todo perfecto la imagen y el comentario.
cuando seleccion para ver la imagen y llamar al 3º activity tengo:

Bundle bolsa=new Bundle();
bolsa.putString("comentario", comenta);
foto.putExtras(bolsa);
startActivity(foto);

y en el 3º activity:

informacion=(TextView) findViewById(R.id.tvComentario);
Bundle bolsa=getIntent().getExtras();
informacion.setText(bolsa.getString("comentario"));
y no se porque cancela el programa con esto ultimo si supuestamente estoy cogiendo la informacion del comentario pasada del activity 2.

no encuentro el fallo a ver si alguien me lo puede decir

cepillo
08/11/13, 14:13:07
Lo que mas me preocupa es el porque no se me muestra nada en el 3º activity.

codigo:

package com.informacion.infotienda;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

public class fotografia extends Activity{

ImageView icono,img;
TextView informacion;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

img=(ImageView) findViewById(R.id.ivPrincipal);
icono =(ImageView) findViewById(R.id.ivIcon);
/**
img.setImageResource(R.drawable.ic_launcher);
icono.setImageResource(R.drawable.icon);

informacion=(TextView) findViewById(R.id.tvComentario);
Bundle bolsa=getIntent().getExtras();
informacion.setText(bolsa.getString("comentario"));
**/


}
}

si quito los comentarios en algo cancela.

XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".MainActivity"
android:orientation="vertical" >

<ImageView
android:id="@+id/ivPrincipal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
android:src="@drawable/ic_launcher" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">

<ImageView
android:id="@+id/ivIcon"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginLeft="5dp"
android:visibility="visible"
android:src="@drawable/icon" />

<TextView
android:id="@+id/tvComentario"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="visible"
android:layout_marginRight="5dp"
/>

</LinearLayout>

</LinearLayout>

remix_squall
08/11/13, 19:15:18
A ver, en el foro, el profesor dijo de hacer un botón sobre el listado de tiendas, no sobre cada tienda.

El ejercicio es tan simple como eso. No hay que complicarse con Bundle e Intent

cepillo
14/11/13, 20:15:20
Buenas de nuevo ya esta todo lo anterior realizado, ahora tengo que crear 2 iconos en action bar uno de favorito y otro compartir , hasta aqui todo perfecto.

En el de compartir en el activity de fotografia debo compartir la foto, pero no se como realizarlo ya que la imagen esta definida en el imageview del xml y no se como puedo hacer para que uri coja el valor que debe tener. Al igual que etResources().getText(R.string.action_compartir) me sobraria ya que quiero enviar la imagen. Lo que tengo hasta ahora es:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
Intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + uri));
intent.setType("Image/*");
startActivity(Intent.createChooser(intent, getResources().getText(R.string.action_compartir)) );
return true;

oxot
14/11/13, 20:36:35
No entiendo muy bien. ¿Quieres compartir un string que indique dónde está la imagen o cómo?
En el intent se puede poner cualquier objeto, no está limitado a nada. Yo por ejemplo cuando quiero compartir objetos (como podría ser un bitmap o un imageview) uso putserializable y getserializable (también se puede hacer con parcelable pero es más complicado porque la serialización la tienes que definir tu mientras que en el otro caso se encarga Java).
Consulta aquí a ver si te vale:
http://developer.android.com/reference/android/os/Bundle.html#putSerializable%28java.lang.String,%20 java.io.Serializable%29
http://developer.android.com/reference/android/os/Bundle.html#getSerializable%28java.lang.String%29

Si no también puedes compartir el id de la foto y cargarla desde la otra activity. Es que no tengo muy claro el objetivo de tu compartir y a dónde envía.

Un saludo.

cepillo
14/11/13, 21:02:54
Hola oxot, yo lo que necesito es enviar una imagen que tengo en un imageview definida en el xml.

kriogeN
14/11/13, 23:45:30
Para obtener la imagen necesitas esto:

Bitmap imagen= ((BitmapDrawable)imageView.getDrawable()).getBitma p();

Una vez que tienes la imagen necesitas almacenarla en un fichero para poder compartirla:

try {
FileOutputStream fichero = new FileOutputStream(ruta);
imagen.compress(Bitmap.CompressFormat.PNG, 90, fichero);
fichero.close();
} catch (Exception e) {

}

Ya lo único que te queda es usar el código que has puesto antes para el Send Intent poniendo la ruta del fichero.

oxot
15/11/13, 12:14:01
Para obtener la imagen necesitas esto:

Bitmap imagen= ((BitmapDrawable)imageView.getDrawable()).getBitma p();

Una vez que tienes la imagen necesitas almacenarla en un fichero para poder compartirla:

try {
FileOutputStream fichero = new FileOutputStream(ruta);
imagen.compress(Bitmap.CompressFormat.PNG, 90, fichero);
fichero.close();
} catch (Exception e) {

}

Ya lo único que te queda es usar el código que has puesto antes para el Send Intent poniendo la ruta del fichero.

Pero, y digo desde mi desconocimiento, si la va a compartir desde su aplicación (con otra actividad o con otra app), ¿no la podría poner en un objeto en el Intent en lugar de guardar un fichero?
¿O es que la quiere dejar guardada para que se pueda abrir desde fuera de la aplicación?
Saludos.

kriogeN
15/11/13, 13:35:48
Pero, y digo desde mi desconocimiento, si la va a compartir desde su aplicación (con otra actividad o con otra app), ¿no la podría poner en un objeto en el Intent en lugar de guardar un fichero?
¿O es que la quiere dejar guardada para que se pueda abrir desde fuera de la aplicación?
Saludos.

Es que para compartir con una aplicación externa que acepte el ACTION_SEND con EXTRA_STREAM. El EXTRA_STREAM debe ser una URI, es decir, una ruta, bien una ruta de Internet o una ruta local. En el caso de ser una ruta de Internet el único requisito es que la otra aplicación tenga permisos de Internet, en el caso de ser una ruta local el único requisito es que esté en una ruta pública, para que ambas aplicaciones puedan acceder a esa ruta.

Si ambas aplicaciones son tuyas ya puedes compartir en el Intent como te de la gana, porque sabes como la vas a enviar y sabes como la vas a recibir. El único requisito es que el objeto sea Parcelable o Serializable. Pero también te digo desde mi experiencia que si el objeto es muy grande (una foto de mucha calidad, que es lo que nos ocupa en este caso) la app destino va a petar en la mayoría de móviles, debido a que el sistema dedica un tiempo muy pequeño para pasar los Extras, y si ese tiempo se excede la Activity destino no se llega a abrir.

cepillo
16/11/13, 21:46:49
Hola muchas gracias, ahora tengo una duda Kriogen, donde pones ruta, que la tengo que poner a mano la ruta? yo lo que quiero es que detecte la ruta de la imagen que se encuentra en el imageview.

cepillo
16/11/13, 21:50:31
Esto es lo que tengo ahora mismo.
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
//Intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + uri));
Bitmap imagen= ((BitmapDrawable)img.getDrawable()).getBitmap();
try {
FileOutputStream fichero = new FileOutputStream(ruta);
imagen.compress(Bitmap.CompressFormat.PNG, 90, fichero);
fichero.close();
} catch (Exception e) {

}

intent.setType("Image/*");
startActivity(Intent.createChooser(intent,"Share Image" ));
return true;

kriogeN
16/11/13, 22:27:44
Ruta es el lugar donde quieras guardar la imagen, por ejemplo "/sdcard/imagen.jpg"

cepillo
18/11/13, 17:15:39
Hola de nuevo tengo puesto esto exactamente:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
//Intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + uri));
Bitmap imagen= ((BitmapDrawable)img.getDrawable()).getBitmap();
try {
FileOutputStream fichero = new FileOutputStream("/sdcard/imagen.jpg");
imagen.compress(Bitmap.CompressFormat.JPEG, 90, fichero);
fichero.close();
} catch (Exception e) {

}

intent.setType("Image/*");
startActivity(Intent.createChooser(intent,"Share Image" ));
return true;

Vale la he probado me aparece con que programa compartirla, selecciono gmail la envio pero no me adjunta la imagen me abre el correo vacio.

kriogeN
18/11/13, 17:22:50
Descomenta el Intent.EXTRA_STREAM, y ponlo después del try {} catch.

Por último la variable uri debe coincidir con la ruta, es decir, ambas deben ser en este caso "/sdcard/imagen.jpg"

cepillo
18/11/13, 17:52:13
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
uri= "sdcard/imagen.jpg";
Bitmap imagen= ((BitmapDrawable)img.getDrawable()).getBitmap();
try {
FileOutputStream fichero = new FileOutputStream("/sdcard/imagen.jpg");
imagen.compress(Bitmap.CompressFormat.JPEG, 90, fichero);
fichero.close();
} catch (Exception e) {
Intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + uri));
}

intent.setType("Image/*");
startActivity(Intent.createChooser(intent,"Share Image" ));
return true;

Asi lo he puesto pero me da error en la linea del EXTRA_STREAM

kriogeN
18/11/13, 18:28:59
El EXTRA_STREAM va fuera del catch, precisamente se debe ejecutar si no se produce la excepción. De producirse la excepción debes terminar la función e impedir que se ejecute el startActivity.

Si te falla en esa línea es porque algo está mal al guardar el fichero.

cepillo
18/11/13, 18:57:55
Hola de nuevo, direis que soy una pesadilla, perdonarme.

Ya he conseguido que funcione el compartir, era una I del intent que estaba mayuscula en vez de minuscula.

Ya lo que es la funcion de compartir lo hace, lo que no hace es guardar la imagen correctamente, es decir, me crea un jpg llamado imagen pero sin una imagen, es como un icono vacio, a ver si ves algun error a lo hora del activity, sobre la ruta que este algo mal puesto.

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
uri= "/sdcard/imagen.jpg";
Bitmap imagen= ((BitmapDrawable)img.getDrawable()).getBitmap();
try {
FileOutputStream fichero = new FileOutputStream("/sdcard/imagen.jpg");
imagen.compress(Bitmap.CompressFormat.JPEG, 90, fichero);
fichero.close();
} catch (Exception e) {
}

intent.putExtra(Intent.EXTRA_STREAM,Uri.parse("File://" + uri));
intent.setType("Image/jpg");
startActivity(Intent.createChooser(intent,"Share Image" ));
return true;

cepillo
19/11/13, 16:40:58
a ver si me echais una mano

vagaerg
19/11/13, 16:45:13
Acerca de lo de grabar la imagen no te puedo ayudar, nunca lo he hecho, pero te puedo recomendar que NUNCA uses rutas absolutas ("/sdcard/imagen.jpg"), pues eso puede cambiar. Usa, en su lugar, Environment.getExternalStorage()

cepillo
19/11/13, 17:37:30
usando eviroment. no me deja me sale error en la linea intent.putExtra(Intent.EXTRA_STREAM,Uri.parse("File://" + Uri));

CODIGO me estoy volviendo loco x esta chorradita
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
File Uri = Environment.getExternalStorageDirectory();
Bitmap imagen= ((BitmapDrawable)img.getDrawable()).getBitmap();
try {
FileOutputStream fichero = new FileOutputStream(Environment.getExternalStorageDir ectory());
imagen.compress(Bitmap.CompressFormat.JPEG, 90, fichero);
fichero.close();
} catch (Exception e) {
}

intent.putExtra(Intent.EXTRA_STREAM,Uri.parse("File://" + Uri));
intent.setType("Image/jpg");
startActivity(Intent.createChooser(intent,"Share Image" ));
return true;

cepillo
20/11/13, 13:22:28
He comprobado que la imagen me la crea en la sdcar pero no me la envia, tengo puesto
ima="/sdcard/imagen.jpg";
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/" + ima);

Ya no tiene que quedar nada para que salga jajaj.

a ver si me ayudais gracias ante todo

cepillo
20/11/13, 22:06:30
Ya esta realizado, esta parte.

cepillo
21/11/13, 20:23:05
No tengo la libreria appcompat v7 en la carpeta extras android support .... correspondiente, como puedo adquirirla tengo todo lo de adk instalado