Add OptionsMenu to Toolbar


Modify from last example of "Set title, subtitle and logo of Toolbar", to add OptionsMenu to Toolbar.


Create /res/menu/menu_main.xml to define our OptionsMenu.
<?xml version="1.0" encoding="utf-8"?>
<menu
>
<item
android_id="@+id/menu_camera"
android_icon="@android:drawable/ic_menu_camera"
android_orderInCategory="100"
android_title="camera"
app_showAsAction="always"/>
<item
android_id="@+id/menu_compass"
android_icon="@android:drawable/ic_menu_compass"
android_orderInCategory="100"
android_title="compass"
app_showAsAction="always"/>
<item
android_id="@+id/menu_agenda"
android_icon="@android:drawable/ic_menu_agenda"
android_orderInCategory="100"
android_title="agenda"
app_showAsAction="always"/>
<item
android_id="@+id/menu_gallery"
android_icon="@android:drawable/ic_menu_gallery"
android_orderInCategory="100"
android_title="gallery"
app_showAsAction="always"/>
<item
android_id="@+id/menu_calendar"
android_icon="@android:drawable/ic_menu_my_calendar"
android_orderInCategory="100"
android_title="calendar"
app_showAsAction="always"/>
</menu>

Modify MainActivity.java, override onCreateOptionsMenu() and onOptionsItemSelected().
package com.blogspot.android_er.androidtoolbar;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

getSupportActionBar().setTitle("Toolbar example");
toolbar.setSubtitle("Android-er.blogspot.com");
toolbar.setLogo(android.R.drawable.ic_menu_info_details);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();
return super.onOptionsItemSelected(item);
}

}


Next:
- Set image on Toolbar

Read More..

Set title subtitle and logo of Toolbar


Last post show how to "Replace ActionBar with Toolbar". Here show how to set title subtitle and logo of Toolbar.


Edit MainActivity.java
package com.blogspot.android_er.androidtoolbar;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

getSupportActionBar().setTitle("Toolbar example");
toolbar.setSubtitle("Android-er.blogspot.com");
toolbar.setLogo(android.R.drawable.ic_menu_info_details);


}
}


In the example, also modify layout/activity_main.xml to use LinearLayout.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout

android_layout_width="match_parent"
android_layout_height="match_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"
android:orientation="vertical"
tools_context="com.blogspot.android_er.androidtoolbar.MainActivity">

<android.support.v7.widget.Toolbar
android_id="@+id/toolbar"
android_layout_width="match_parent"
android_layout_height="56dp"
android_background="#FFA000"/>
<TextView
android_layout_width="wrap_content"
android_layout_height="wrap_content"
android_text="Hello World!" />
</LinearLayout>


Next:
- Add OptionsMenu to Toolbar

Read More..

Set image on Toolbar

This post show how to set image on Toolbar:

Modify from last post "Add OptionsMenu to Toolbar".

To set background image of Toolbar, edit layout/activity_main.xml to set android:background of <android.support.v7.widget.Toolbar>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout

android_layout_width="match_parent"
android_layout_height="match_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"
android_orientation="vertical"
tools_context="com.blogspot.android_er.androidtoolbar.MainActivity">

<android.support.v7.widget.Toolbar
android_id="@+id/toolbar"
android_layout_width="match_parent"
android_layout_height="56dp"
android:background="@mipmap/ic_launcher"/>
<TextView
android_layout_width="wrap_content"
android_layout_height="wrap_content"
android_text="Hello World!" />
</LinearLayout>



Another method, add ImageView inside <android.support.v7.widget.Toolbar>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout

android_layout_width="match_parent"
android_layout_height="match_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"
android_orientation="vertical"
tools_context="com.blogspot.android_er.androidtoolbar.MainActivity">

<android.support.v7.widget.Toolbar
android_id="@+id/toolbar"
android_layout_width="match_parent"
android_layout_height="56dp"
android_background="#FFA000">
<ImageView
android_id="@+id/toolbarimage"
android_layout_width="wrap_content"
android_layout_height="wrap_content"
android_src="@mipmap/ic_launcher"/>

</android.support.v7.widget.Toolbar>
<TextView
android_layout_width="wrap_content"
android_layout_height="wrap_content"
android_text="Hello World!" />
</LinearLayout>



In this examples, also modify menu/menu_main.xml to set all app_showAsAction="ifRoom".
<?xml version="1.0" encoding="utf-8"?>
<menu
>
<item
android_id="@+id/menu_camera"
android_icon="@android:drawable/ic_menu_camera"
android_orderInCategory="100"
android_title="camera"
app_showAsAction="ifRoom"/>
<item
android_id="@+id/menu_compass"
android_icon="@android:drawable/ic_menu_compass"
android_orderInCategory="100"
android_title="compass"
app_showAsAction="ifRoom"/>
<item
android_id="@+id/menu_agenda"
android_icon="@android:drawable/ic_menu_agenda"
android_orderInCategory="100"
android_title="agenda"
app_showAsAction="ifRoom"/>
<item
android_id="@+id/menu_gallery"
android_icon="@android:drawable/ic_menu_gallery"
android_orderInCategory="100"
android_title="gallery"
app_showAsAction="ifRoom"/>
<item
android_id="@+id/menu_calendar"
android_icon="@android:drawable/ic_menu_my_calendar"
android_orderInCategory="100"
android_title="calendar"
app_showAsAction="ifRoom"/>
</menu>

Next:
- Implement checkable items in OptionsMenu of Toolbar

Read More..

Implement checkable items in OptionsMenu of Toolbar

Example to implement checkable items in OptionsMenu of Toolbar, modify from last example"Set image on Toolbar".

Modify menu/menu_main.xml, to add checkable items:
<?xml version="1.0" encoding="utf-8"?>
<menu
>
<item
android_id="@+id/item_checkable1"
android_orderInCategory="100"
android_title="Checkable opt 1"
android_checkable="true"
android_checked="true"/>
<item
android_id="@+id/item_checkable2"
android_orderInCategory="100"
android_title="Checkable opt 2"
android_checkable="true"
android_checked="false"/>

<item
android_id="@+id/item_normal"
android_orderInCategory="100"
android_title="Normal item"/>

</menu>

Modify MainActivity.java, modify onOptionsItemSelected() to handle the item click.
package com.blogspot.android_er.androidtoolbar;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

getSupportActionBar().setTitle("Toolbar example");
toolbar.setSubtitle("Android-er.blogspot.com");
toolbar.setLogo(android.R.drawable.ic_menu_info_details);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show();

int item_id = item.getItemId();
switch(item_id){
case R.id.item_checkable1:
if(item.isChecked()){
item.setChecked(false);
}else{
item.setChecked(true);
}
break;
case R.id.item_checkable2:
if(item.isChecked()){
item.setChecked(false);
}else{
item.setChecked(true);
}
break;
}


return super.onOptionsItemSelected(item);
}
}



Read More..

Blog Archive

Powered by Blogger.