package com.xbmu.google; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Menu; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }在项目清单文件(AndroidManifest.xm)中的Application标签里修改:
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.AppCompat.Light" > <activity android:name="com.xbmu.google.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>运行效果:
package com.xbmu.google; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.SearchView; import android.support.v7.widget.SearchView.OnQueryTextListener; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.Toast; public class MainActivity extends ActionBarActivity implements OnQueryTextListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_activity_actions, menu); SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); searchView.setOnQueryTextListener(this);//设置搜素的监听事件 return true; } /**处理actionBar菜单条目的点击事件*/ @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getItemId() == R.id.action_search){ Toast.makeText(getApplicationContext(), "搜素", 0).show(); } return super.onOptionsItemSelected(item); } //当搜素文本发生变化的时候 @Override public boolean onQueryTextChange(String newText) { Toast.makeText(getApplicationContext(), newText, 0).show(); return false; } //当搜素提交的时候 @Override public boolean onQueryTextSubmit(String query) { Toast.makeText(getApplicationContext(), query, 0).show(); return false; } }运行效果:
package com.xbmu.google; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; public class DetailActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_detail); } }activity_detail.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="详情页面" android:layout_centerInParent="true" /> </RelativeLayout>在清单文件中声明:
<activity android:name="com.xbmu.google.DetailActivity" android:label="@string/app_detail" android:parentActivityName="com.xbmu.google.MainActivity" > <!-- Parent activity meta-data to support 4.0 and lower --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.xbmu.google.MainActivity" /> </activity>
package com.xbmu.google; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.SearchView; import android.support.v7.widget.SearchView.OnQueryTextListener; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Toast; public class MainActivity extends ActionBarActivity implements OnQueryTextListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = getSupportActionBar(); //设置是否将应用程序图标转变成可点击的图标,并在图标上添加一个向左的箭头。 actionBar.setDisplayHomeAsUpEnabled(true); } public void jump(View view){ Intent intent = new Intent(this, DetailActivity.class); startActivity(intent); } //...... }
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="跳转到详情页面" android:onClick="jump"/> </RelativeLayout>运行效果图:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- STATES WHEN BUTTON IS NOT PRESSED --> <!-- Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" /> <!-- Focused states (such as when focused with a d-pad or mouse hover) --> <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused" /> <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_focused" /> <!-- STATES WHEN BUTTON IS PRESSED --> <!-- Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed" /> <!-- Focused states (such as when focused with a d-pad or mouse hover) --> <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed" /> <item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed" /> </selector>2.实现自定义主题:
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- the theme applied to the application or activity --> <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light"> <item name="android:actionBarTabStyle">@style/MyActionBarTabs</item> </style> <!-- ActionBar tabs styles --> <style name="MyActionBarTabs" parent="@style/Widget.AppCompat.ActionBar.TabView"> <!-- tab indicator --> <item name="android:background">@drawable/actionbar_tab_indicator</item> </style> </resources>3.在MainActivity.java中添加标签代码:
package com.xbmu.google; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBar.Tab; import android.support.v7.app.ActionBar.TabListener; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.SearchView; import android.support.v7.widget.SearchView.OnQueryTextListener; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Toast; public class MainActivity extends ActionBarActivity implements OnQueryTextListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = getSupportActionBar(); //设置是否将应用程序图标转变成可点击的图标,并在图标上添加一个向左的箭头。 actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); Tab tab1 = actionBar.newTab().setText("标签一").setTabListener(new MyTabListener()); actionBar.addTab(tab1); Tab tab2 = actionBar.newTab().setText("标签二").setTabListener(new MyTabListener()); actionBar.addTab(tab2); Tab tab3 = actionBar.newTab().setText("标签三").setTabListener(new MyTabListener()); actionBar.addTab(tab3); Tab tab4 = actionBar.newTab().setText("标签四").setTabListener(new MyTabListener()); actionBar.addTab(tab4); Tab tab5 = actionBar.newTab().setText("标签五").setTabListener(new MyTabListener()); actionBar.addTab(tab5); } private class MyTabListener implements TabListener{ @Override public void onTabReselected(Tab arg0, FragmentTransaction arg1) { // TODO Auto-generated method stub } @Override public void onTabSelected(Tab arg0, FragmentTransaction arg1) { // TODO Auto-generated method stub } @Override public void onTabUnselected(Tab arg0, FragmentTransaction arg1) { // TODO Auto-generated method stub } } public void jump(View view){ Intent intent = new Intent(this, DetailActivity.class); startActivity(intent); } @SuppressLint("NewApi") @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_activity_actions, menu); //如果运行的环境(部署到什么版本的手机)大于3.0 if(android.os.Build.VERSION.SDK_INT > 11){ SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); searchView.setOnQueryTextListener(this);//设置搜素的监听事件 } return true; } /**处理actionBar菜单条目的点击事件*/ @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getItemId() == R.id.action_search){ Toast.makeText(getApplicationContext(), "搜素", 0).show(); } return super.onOptionsItemSelected(item); } //当搜素文本发生变化的时候 @Override public boolean onQueryTextChange(String newText) { Toast.makeText(getApplicationContext(), newText, 0).show(); return false; } //当搜素提交的时候 @Override public boolean onQueryTextSubmit(String query) { Toast.makeText(getApplicationContext(), query, 0).show(); return false; } }
运行效果:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/dl"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="left" android:background="@drawable/bg_tab" /> </android.support.v4.widget.DrawerLayout>MainActivity.java:
package com.xbmu.google; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.app.FragmentTransaction; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBar.Tab; import android.support.v7.app.ActionBar.TabListener; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.SearchView; import android.support.v7.widget.SearchView.OnQueryTextListener; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Toast; public class MainActivity extends ActionBarActivity implements OnQueryTextListener { private ActionBarDrawerToggle drawerToggle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.dl); ActionBar actionBar = getSupportActionBar(); //设置是否将应用程序图标转变成可点击的图标,并在图标上添加一个向左的箭头。 actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); Tab tab1 = actionBar.newTab().setText("标签一").setTabListener(new MyTabListener()); actionBar.addTab(tab1); Tab tab2 = actionBar.newTab().setText("标签二").setTabListener(new MyTabListener()); actionBar.addTab(tab2); Tab tab3 = actionBar.newTab().setText("标签三").setTabListener(new MyTabListener()); actionBar.addTab(tab3); Tab tab4 = actionBar.newTab().setText("标签四").setTabListener(new MyTabListener()); actionBar.addTab(tab4); Tab tab5 = actionBar.newTab().setText("标签五").setTabListener(new MyTabListener()); actionBar.addTab(tab5); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeButtonEnabled(true);//设置是否将应用程序图标转变成可点击的按钮 drawerToggle = new ActionBarDrawerToggle(this,mDrawerLayout, R.drawable.ic_drawer_am, // R.string.open_drawer, R.string.close_drawer){ @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); Toast.makeText(getApplicationContext(), "抽屉关闭了", 0).show(); } @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); Toast.makeText(getApplicationContext(), "抽屉打开了", 0).show(); } }; mDrawerLayout.setDrawerListener(drawerToggle); //让开关和actionBar建立关系 drawerToggle.syncState(); } private class MyTabListener implements TabListener { @Override public void onTabReselected(Tab arg0, FragmentTransaction arg1) { // TODO Auto-generated method stub } @Override public void onTabSelected(Tab arg0, FragmentTransaction arg1) { // TODO Auto-generated method stub } @Override public void onTabUnselected(Tab arg0, FragmentTransaction arg1) { // TODO Auto-generated method stub } } public void jump(View view) { Intent intent = new Intent(this, DetailActivity.class); startActivity(intent); } @SuppressLint("NewApi") @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_activity_actions, menu); // 如果运行的环境(部署到什么版本的手机)大于3.0 if (android.os.Build.VERSION.SDK_INT > 11) { SearchView searchView = (SearchView) menu.findItem( R.id.action_search).getActionView(); searchView.setOnQueryTextListener(this);// 设置搜素的监听事件 } return true; } /** 处理actionBar菜单条目的点击事件 */ @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.action_search) { Toast.makeText(getApplicationContext(), "搜素", 0).show(); } return drawerToggle.onOptionsItemSelected(item)|super.onOptionsItemSelected(item); } // 当搜素文本发生变化的时候 @Override public boolean onQueryTextChange(String newText) { Toast.makeText(getApplicationContext(), newText, 0).show(); return false; } // 当搜素提交的时候 @Override public boolean onQueryTextSubmit(String query) { Toast.makeText(getApplicationContext(), query, 0).show(); return false; } }运行效果图: