ShareActionProvider sin ninguna barra de acción en android
No quiero una barra de acción en mi aplicación y todavía quiero tener ese botón de compartir que se proporciona por la barra de acción.
Esto se hace cuando la barra de acción está allí.
- Problema con actividad cancelada por el sistema si ya no es visible en Android
- Error al subir apk a Android Market
- Edición de altura del cuadro EditarText android
- Cómo hacer un ListView transparente en Android?
- Android Editar alineación de texto
public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); ShareActionProvider provider = (ShareActionProvider) menu.findItem(R.id.menu_share).getActionProvider(); if (provider != null) { Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.putExtra(Intent.EXTRA_TEXT, "hi"); shareIntent.setType("text/plain"); provider.setShareIntent(shareIntent); } return true; }
Y el menu.xml se mantiene en la carpeta del menú.
Donde como quiero un botón de compartir de mi propio en mi xml donde otros diseños también se definen.
¿alguna ayuda?
- ¿Cómo puedo crear un borde alrededor de un Android LinearLayout?
- Transición suave entre actividades sin pantalla negra
- Cambiar la imagen de fondo de una actividad que extiende ListActivity
- Gravedad de diseño personalizado de Android
- ¿Cómo puedo establecer un EditText a la entrada de sólo números hexadecimales?
- ¿Cómo resalto el texto buscado en mi filtro de búsqueda?
- GridLayout Ancho de columna
- Android DataBinding layout_width: Debe proporcionar un atributo layout_width
Utilice PackageManager
y queryIntentActivities()
para encontrar las aplicaciones que saben cómo manejar la Intent
ACTION_SEND
que desea invocar. Muestra la lista resultante como quieras. Cuando el usuario realiza una selección, cree un ACTION_SEND
equivalente, donde especifique el ComponentName
de la actividad particular que el usuario eligió y llame a startActivity()
.
No necesita una barra de acciones para compartir contenido. De hecho, incluso con una barra de acciones, la mayoría de las aplicaciones no utilizan ShareActionProvider
porque visualmente los diseñadores lo odian y no soporta muchas de las últimas características de compartir en un dispositivo de usuarios (como compartir directamente con contactos). En su lugar, debe utilizar Intent.createChooser
para crear un diálogo compartido más sólido.
Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); sendIntent.setType("text/plain"); startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to)));
http://developer.android.com/training/sharing/send.html
Una forma aún mejor de compartir desde cualquier lugar en su aplicación es utilizar ShareCompat
. Aquí está un ejemplo rápido:
ShareCompat.IntentBuilder.from(this) .setType("text/plain") .setText("I'm sharing!") .startChooser();
Otros ejemplos se pueden encontrar aquí: https://android.googlesource.com/platform/development/+/master/samples/Support4Demos/src/com/example/android/supportv4/app/SharingSupport.java
Utilice un intento con ACTION_SEND. Por ejemplo, cuando se hace clic en un botón, podría:
Intent It = new Intent(Intent.ACTION_SEND); It.setType("text/plain"); It.putExtra(android.content.Intent.EXTRA_TEXT,"your_text_to_share"); YourActivity.this.startActivity(It);
- Cómo cancelar un servicio de primer plano de usar la notificación (borrar descartar) o borrar todas las notificaciones?
- Pellizcar zoom en una imagen en Xamarin