Clic del elemento de la barra de herramientas
Estoy usando la barra de herramientas en mi aplicación. El diseño de la barra de herramientas se ve así. Añado imageButton
dentro de la barra de herramientas como elemento de menú. (¿Es eso un problema?) Como soy nuevo en la barra de herramientas, no sé si esta es la forma correcta.
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_gravity="top" android:layout_height="@dimen/abc_action_bar_default_height_material" android:minHeight="?attr/actionBarSize" android:gravity="right" android:background="?attr/colorPrimaryDark"> <ImageButton android:src="@drawable/ic_action_social_share" android:layout_width="48dp" android:layout_height="48dp" android:layout_gravity="right" android:layout_marginRight="8dp" android:background="?selectableItemBackground" android:id="@+id/shareButton" /> <ImageButton android:src="@drawable/ic_tag" android:layout_width="48dp" android:layout_height="48dp" android:layout_gravity="right" android:layout_marginRight="8dp" android:background="?selectableItemBackground" android:id="@+id/tagButton" /> <ImageButton android:src="@drawable/ic_action_action_bookmark" android:layout_width="48dp" android:layout_height="48dp" android:layout_gravity="right" android:layout_marginRight="8dp" android:background="?selectableItemBackground" android:id="@+id/bookmarkButton" /> </android.support.v7.widget.Toolbar>
Y en onCreate
:
- Añadir vista personalizada a la derecha de la barra de herramientas
- ¿Cómo hacer que el menú emergente de desbordamiento evite obstruir la barra de acción?
- ¿Cómo se elimina un menú / elementos inflados de la nueva barra de herramientas Lollipop?
- Implementación correcta de SearchView en la barra de herramientas de Android
- Hacer clic en icono de hamburguesa en la barra de herramientas no abre Cajón de navegación
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.newsdetail_activity); mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(mActionBarToolbar); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeButtonEnabled(true); }
Y onOptionItemSelected
:
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); break; case R.id.shareButton: Log.d(TAG, "SHARE BUTTON"); break; } return true; }
El clic en shareButton
en la barra de herramientas no está disparando. ¿Puede alguien decir la razón de esto?
- Navegación posterior con Fragmentos / Barra de herramientas
- Cómo agregar una imagen en la barra de herramientas
- Establecer el icono al final de la barra de herramientas
- CollapsingToolbarLayout setTitle () no se actualiza a menos que se colapse
- El espacio entre la navegación hacia arriba y el título de la barra de herramientas es demasiado grande
- Spinner onItemSelected no se llama usando Marsmallow
- Título del centro de Android con el cajón de navegación
- Ocultar barra de herramientas en desplazamiento con recyclerview dentro de fragmento
Terminé usando el siguiente código
ImageButton imageButton = (ImageButton) toolbar.findViewById(R.id.shareButton); imageButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } });
No sé si esta es la manera correcta. Pero funciona
cambio
case R.id.shareButton: Log.d(TAG, "SHARE BUTTON"); break;
a
case android.R.id.shareButton: Log.d(TAG, "SHARE BUTTON"); break;
Simplemente utilice esto.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_launcher); actionbar = getActionBar(); actionbar.setDisplayShowCustomEnabled(true); actionbar.setCustomView(R.layout.action_bar_layout); btnClick = (Button) findViewById(R.id.btnClick); appIcon = (ImageView) findViewById(R.id.appIcon); appName = (TextView) findViewById(R.id.appName); appName.setOnClickListener(this); appIcon.setOnClickListener(this); btnClick.setOnClickListener(this); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.appName: Toast.makeText(LauncherActivity.this, "You Clicked on App Name", Toast.LENGTH_LONG).show(); break; case R.id.appIcon: Toast.makeText(LauncherActivity.this, "You Clicked on App Icon", Toast.LENGTH_LONG).show(); break; case R.id.btnClick: Toast.makeText(LauncherActivity.this, "You Clicked on Button", Toast.LENGTH_LONG).show(); break; } }
Ver mi proyecto git aquí
- La aplicación no está recibiendo android.intent.action.DOWNLOAD_COMPLETE intención
- Cómo cambiar el color de la barra de herramientas