ম্যাটেরিয়াল ডিজাইন এন্ড্রয়েডে আনার পর ActionBar কে বলা হচ্ছে AppBar বা Tool Bar. আর আগের ActionBarActivity ও ডেপ্রিকেটেড। এখন সূচনা করা হয়েছে AppCompact Activity.
AppCompat সম্পর্কে একটু বিস্তারিত নিচের লেখা থেকে জানা যাবে।
এখন AppBar বা Tool Bar ব্যবহার করতে হলে অল্প কিছু পরিবর্তন করতে হবে আমাদের। আমরা নিচের মত একটা সিম্পল অ্যাপ তৈরি করবঃ
আমাদের activity_main.xml এ কিছু পরিবর্তন করতে হবে না অ্যাপ বার নিয়ে কাজ করতে হলে। activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" tools:ignore="MergeRootFrame"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:id="@+id/textView" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> </RelativeLayout>
menu_main.xml এ ডিফল্ট একটা মেনু থাকে। Settings নামে। একটা ড্রপ ডাউনে ক্লিক করলে Settings দেখায়। ড্রপ ডাউনে অপশন গুলো না দেখিয়ে আমরা অ্যাপবারেওই দেখাবো। তাই একটু পরিবর্তন এনেছি। এবং নতুন আরেকটা আইটেম যুক্ত করেছি। যেন বুঝতে পারি কিভাবে অ্যাপ বারে আমরা মেনু যুক্ত করতে পারি।
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/action_settings" android:orderInCategory="100" android:showAsAction="always" app:showAsAction="always" android:title="@string/action_settings"/> <item android:id="@+id/android_icon" android:icon="@mipmap/ic_launcher" android:showAsAction="always" app:showAsAction="always" android:title="thirdone"/> </menu>
AndroidManifest.xml এ আমাদের AppCompact থিম যুক্ত করতে হবে। application ট্যাগের ভেতর android:theme=”@style/Theme.AppCompat.Light” বা অন্য কোন থিম যুক্ত করতে হবে।
সম্পুর্ণ AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="us.studiojh.appbar" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.AppCompat.Light" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
মূলত MainActivity.java ফাইলে আমাদের কিছু পরিবর্তন করতে হবে। extends ActionBarActivity বা অন্য কোন এক্টিভিটি থাকলে তা পরিবর্তন করে extends AppCompatActivity দিতে হবে। android.support.v7.app.AppCompatActivity; ইম্পোর্ট করতে হবে।
আর অ্যাপ বারের কোন আইটেমে ক্লিক করলে কি রেস্পন্স করবে, তার কোড লিখতে হবে। আপাতত আমরা শুধু একটা Toast দেখাচ্ছি। নিচে সম্পুর্ণ জাভা কোডঃ
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; 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); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { Toast.makeText(MainActivity.this, "Setting selected", Toast.LENGTH_LONG).show(); } else if (id == R.id.android_icon) { Toast.makeText(MainActivity.this, "Android icon selected", Toast.LENGTH_LONG).show(); } return super.onOptionsItemSelected(item); } }
Really a uuseful post . thank you
thank you .