به نام خدا.

با سلام خدمت شما امروز با آموزش استفاده از تولبار در برنامه نویسی اندروید در خدمت شما هستیم. تولبار ها نسخه ای جدید از اکشن بار هستند که با کتابخانه appcampat در دسترس برنامه نویسان اندروید قرار می گیرند.

برای استفاده از تولبار باید به شیوه زیر عمل کنید: وارد صفحه XML که می خواهید در آن تولبار استفاده کنید شوید و کد زیر را درون آن بریزید. این کد رو میتونید توی یه فایل xml به صورت جداگانه ذحیره کنید و اون رو include کنید در صورتی هم که دوست ندارید و می خواهید واسه هر صفحه یه رنگ خاصی بزارید می تونید همین کد رو توی همه ی صفحات xml مثل activity_main.xml ذخیره کنید.

<android.support.v7.widget.Toolbar
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:background="@color/ColorPrimary"
    android:elevation="2dp"
    android:theme="@style/Base.ThemeOverlay.AppCompat.Dark"
    xmlns:android="http://schemas.android.com/apk/res/android" />

 در صورتی که می خواهید از تولبار به عنوان اکشن بار استفاده کنید باید وارد فایل style.xml در پوشه value شوید و در تم خود این دو آیتم را اضافه کنید.

<item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>

توجه داشته باشید که parent تم خود را از Theme.AppCompat.Light.DarkActionBar ارث بری کرده باشید حالا وارد فایل MainActivity.java شوید و کد زیر را در این فایل کپی کنید.

 toolbar = (Toolbar) findViewById(R.id.tool_bar);
        setSupportActionBar(toolbar);

برای اجرا این کد لازم است که اکتیویتی شما از ActionBarActivity ارث بری شده باشد. حالا اگه می خواهید گزینه به تولبار خود اضافه کنید باید یک فایل xml در فولدر menu ایجاد کنید و در آن کد های زیر را کپی کنید:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
    <item android:id="@+id/action_settings" android:title="@string/action_settings"
        android:orderInCategory="100" app:showAsAction="never" />
</menu>

 

حالا به فایل ActivityMain.java بروید و کد های زیر را درون آن بنویسید.

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

در صورتی که می خواهید با کلیک شدن دکمه settigs عملیاتی انجام شود باید در قسمت:

if (id == R.id.action_settings) {
            return true;
        }

عملیات را انجام دهید. اگه سوالی بود در خدمتم.

یا علی مدد