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í.

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?

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 puedo incluir programaticamente en Android?
  • El texto no ellipsiza
  • Estilo de botón de Android mediante programación
  • ¿Mis avisos de tarjeta de crédito no siempre descartan cuando se pasa a la izquierda oa la derecha?
  • Cómo crear un widget Widget.Holo.Spinner-estilo en v7
  • Creación de un fragmento en una ventana emergente - en Android
  • Tipo de letra personalizado
  • Fragmentos dentro de ViewPager desaparecen cuando cambia la orientación
  • Cómo rotar vistas sobre el cambio de orientación sin volver a crear el diseño?
  • Cómo formatear una actividad de otra actividad mediante opciones de menú
  • Android - Cómo cambiar dinámicamente el diseño del fragmento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.