ActionBar
2016-05-11 19:09
260 查看
学习了: http://blog.csdn.net/bigconvience/article/details/28886241
自己总结了些 如果有不正确的地方请指正
ActionBar位于Activity的顶部,可用来显示activity的标题、Icon、Actions和一些用于交互的View。它也可被用于应用的导航。
ActionBar 是在Android 3.0(API 11)中加入到SDK中的,想在低版本中使用ActionBar有两种选择:使用http://actionbarsherlock.com 或使用Support
Library v7。
下面是一张使用ActionBar的界面截图:
其中,[1]是ActionBar的图标,[2]是两个action按钮,[3]是overflow按钮
案例一:搜索
第一步:
menu.xml
第二步:
1.初始化menu
2.处理搜索点击
3.搜索的监听
案例二:
MainActivity ---跳转--- DetailActivity ---返回---MainActivity
1.跳转
2.返回
在DetailActivity
AndroidManifest.xml
需要注意:com.itheima.googleplay.MainActivity必须全称不可以简写android:parentActivityName="com.itheima.googleplay.MainActivity"
案例三:设置actionbar tab标签
1.自定义样式
drawable
actionbar_tab_indicator.xml
2.
valus
theme.xml
3.AndoridManifest.xml
4.MainActivity.java
自己总结了些 如果有不正确的地方请指正
ActionBar位于Activity的顶部,可用来显示activity的标题、Icon、Actions和一些用于交互的View。它也可被用于应用的导航。
ActionBar 是在Android 3.0(API 11)中加入到SDK中的,想在低版本中使用ActionBar有两种选择:使用http://actionbarsherlock.com 或使用Support
Library v7。
下面是一张使用ActionBar的界面截图:
其中,[1]是ActionBar的图标,[2]是两个action按钮,[3]是overflow按钮
案例一:搜索
第一步:
menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:orderInCategory="100" android:showAsAction="always" android:title="@string/action_search" android:actionViewClass="android.support.v7.widget.SearchView"/> <item android:id="@+id/action_settings" android:title="Settings"> </item> </menu>
第二步:
1.初始化menu
/** * 初始化menu */ @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; }
2.处理搜索点击
// 处理搜索点击事件 @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.action_search) { Toast.makeText(this, "搜索", 0).show(); } return super.onOptionsItemSelected(item); }
3.搜索的监听
/** * 初始化menu */ @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); //获取searchview SearchView search = (SearchView) menu.findItem(R.id.action_search).getActionView(); //设置监听 search.setOnQueryTextListener(new OnQueryTextListener() { // 搜索文本提交的时候 @Override public boolean onQueryTextSubmit(String arg0) { Toast.makeText(getApplicationContext(), "onQueryTextSubmit", 0) .show(); return true; } // 搜索文本发生变化的时候 @Override public boolean onQueryTextChange(String searchText) { Toast.makeText(getApplicationContext(), searchText, 0).show(); return false; } }); return true; }
案例二:
MainActivity ---跳转--- DetailActivity ---返回---MainActivity
1.跳转
//跳转 MainActivity - DetailActivity public void click(View view){ startActivity(new Intent(getApplicationContext(),DetailActivity.class)); }
2.返回
在DetailActivity
package com.itheima.googleplay; import android.app.ActionBar; import android.app.Activity; import android.os.Bundle; public class DetailActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_detail); ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true);//给图片左上角添加一个返回图标 } }
AndroidManifest.xml
需要注意:com.itheima.googleplay.MainActivity必须全称不可以简写android:parentActivityName="com.itheima.googleplay.MainActivity"
<activity android:name=".DetailActivity" android:label="@string/action_detail" android:parentActivityName="com.itheima.googleplay.MainActivity" ></activity>
案例三:设置actionbar tab标签
1.自定义样式
drawable
actionbar_tab_indicator.xml
<?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.
valus
theme.xml
<?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> <item name="android:actionBarTabTextStyle">@style/MyActionBarTabTextStyle</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> <!-- Support library compatibility --> <item name="background">@drawable/actionbar_tab_indicator</item> </style> <!-- 字体设置 --> <style name="MyActionBarTabTextStyle" parent="android:style/Widget.Holo.Light.ActionBar.TabText"> <item name="android:textColor">#ff0000</item> <item name="android:textSize">12sp</item> </style> </resources>
3.AndoridManifest.xml
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/CustomActionBarTheme" >//自定义 <activity..................
4.MainActivity.java
package com.itheima.googleplay; import android.os.Bundle; import android.app.ActionBar; import android.app.ActionBar.TabListener; import android.app.FragmentTransaction; import android.app.ActionBar.Tab; import android.app.Activity; import android.content.Intent; import android.support.v7.widget.SearchView; import android.support.v7.widget.SearchView.OnQueryTextListener; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //=========================================tab标签========================================================= ActionBar bar = getActionBar(); //添加tab bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //添加标签 bar.addTab(bar.newTab().setText("标签1").setTabListener(new MyTabListenter())); bar.addTab(bar.newTab().setText("标签2").setTabListener(new MyTabListenter())); bar.addTab(bar.newTab().setText("标签3").setTabListener(new MyTabListenter())); bar.addTab(bar.newTab().setText("标签4").setTabListener(new MyTabListenter())); bar.addTab(bar.newTab().setText("标签5").setTabListener(new MyTabListenter())); } private class MyTabListenter implements TabListener{ @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub } } //================================================================================================================================== /** * 初始化menu */ @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); //获取searchview SearchView search = (SearchView) menu.findItem(R.id.action_search).getActionView(); //设置监听 search.setOnQueryTextListener(new OnQueryTextListener() { // 搜索文本提交的时候 @Override public boolean onQueryTextSubmit(String searchText) { //输入内容的searchText Toast.makeText(getApplicationContext(), searchText, 0) .show(); return true; } // 搜索文本发生变化的时候 @Override public boolean onQueryTextChange(String searchText) { Toast.makeText(getApplicationContext(), searchText, 0).show(); return false; } }); return true; } // 处理搜索点击事件 @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.action_search) { Toast.makeText(this, "搜索", 0).show(); } return super.onOptionsItemSelected(item); } //跳转 MainActivity - DetailActivity public void click(View view){ startActivity(new Intent(getApplicationContext(),DetailActivity.class)); } }
相关文章推荐
- 记录用户的登录状态
- 日志管理 rsyslog服务浅析
- POJ 3601:Tower of Hanoi
- Oracle LOB
- [SDOI 2014] [JZOJ 3625] 旅行
- BZOJ3521: [Poi2014]Salad Bar
- 三步解决网络稳定加载图片:使用到谷歌开源的Volley
- Android 常见bug汇总
- 闭包回调的写法
- 手写控件布局
- nyoj 115 dijkstra
- RabbitMQ 学习资料
- saltstack之(八)配置管理部署LAMP
- Linux下TC使用说明
- 【Android】17、体验活动的生命周期(下)
- Android startservice和bindservice
- ES5 数组方法every和some
- poj1083 贪心
- 关于finalize()方法(总结)
- 【连载】关系型数据库是如何工作的?(12) - 查询管理器之Statistics