指令汇C电子市场开发(一) ActionBar的使用

前话:

在学习开发谷歌电子市场的的时候,我换了一款比较高大上的模拟器——genymotion,首先去genymotion的官网注册下载,然后安装。感觉这款模拟器运行挺快的,哈哈,而且可以直接把应用拖进去安装,还可以拖到尺寸,比安卓原生的模拟器好用多啦!原谅我现在才知道

一、ActionBar的使用

我们可以参考安卓官网的文档进行开发,主要分为ActionBar的搜索、按钮返回处理、添加tab标签等操作。

添加ActionBar:

清单文件中:<activity android:theme="@style/Theme.AppCompat.Light" ... >

1、搜索的实现步骤:

在menu中添加

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          yourapp:showAsAction="ifRoom"  />
</menu>

MainActivity.java中

                 @Override
		public boolean onCreateOptionsMenu(Menu menu) {
			getMenuInflater().inflate(R.menu.activity_main, menu);
			SearchView searchView = (SearchView) menu.findItem(R.id.action_search)
					.getActionView();
			searchView.setOnQueryTextListener(this);//  搜索的监听
			return true;
		}

		  // 当搜索提交的时候
		@Override
		public boolean onQueryTextSubmit(String query) {
			Toast.makeText(getApplicationContext(), query, 0).show();
			return true;
		}
		// 当搜索的文本发生变化
		@Override
		public boolean onQueryTextChange(String newText) {
			//Toast.makeText(getApplicationContext(), newText, 0).show();
			return true;
		}

2、返回按钮的处理

1 	

		ActionBar actionBar = getSupportActionBar();
		actionBar.setDisplayHomeAsUpEnabled(true);
2   	

		 <activity  android:name=".DetailActivity"
            android:label="@string/app_detail"
             android:parentActivityName="com.itheima.googleplay.MainActivity"
            >
             <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.itheima.googleplay.MainActivity" />
        </activity>

3、Tab标签

首先在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>

btn_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"  android:enterFadeDuration="200">
    <item  android:state_pressed="true" android:drawable="@drawable/btn_pressed"></item>
    <item  android:drawable="@drawable/btn_normal"></item>

</selector>

在代码里添加标签

ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab tab1=actionBar.newTab().setText("首页").setTabListener(new MyTabListener());
actionBar.addTab(tab1);

时间: 2024-11-23 03:57:33

指令汇C电子市场开发(一) ActionBar的使用的相关文章

指令汇B新闻客户端开发(五) ShareSdk的使用

ShareSdk是一个分享按钮的开源框架,我们首先可以去mob的官网下载这个控件.mob官网,然后找到sdk下载那一栏, 下载下来之后点击这个.jar文件就会有一个弹窗,填写自己的应用包名和要哪些分享,就会自动生成一个你包名相同的文件,我的是zhilinghiuB,然后去覆盖原来的那个文件就可以了. 我们需要在清单文件中添加必要的权限,具体权限可以去看mob官网开发者文档,然后再代码中添加如下代码: /** * 分享, 注意在sdcard根目录放test.jpg */ private void

指令汇B新闻客户端开发(一) 新手引导页开发

首先做开发的时候应该有一个闪屏页面和新手引导页, 我相信闪屏页面大家应该都会了,那么先看到新手引导页了. 我们可以看到这其实是一个ViewPager,我们也可以看到这是3个引导页,那么首先来看一下布局文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

指令汇B新闻客户端开发(三) 下拉刷新

现在我们继续这个新闻客户端的开发,今天分享的是下拉刷新的实现,我们都知道下拉刷新是一个应用很常见也很实用的功能.我这个应用是通过拉ListView来实现刷新的,先看一张刷新的原理图 从图中可知,手指移动的距离就是dy. 刷新分为三种状态:下拉刷新.正在刷新.松开刷新: 定义这三种状态为: private static final int STATE_PULL_REFRESH = 0;// 下拉刷新private static final int STATE_RELEASE_REFRESH = 1

指令汇B新闻客户端开发(四) 自动轮播条

    在这个新闻客户端,我们可以看到有一个轮播页面,在这个项目中,用Handler和一个定时器来做更容易一些, 我们定义一个Handler: private Handler mHandler; 定时器的代码如下: // 自动轮播条显示 if (mHandler == null) { mHandler = new Handler() { public void handleMessage(android.os.Message msg) { int currentItem = mViewPager

指令汇B新闻客户端开发(六) 浅谈屏幕适配解决方案

     屏幕适配的问题,我相信很多大牛的经验远比我丰富,在此就简单的分享一下我所做的的屏幕适配方案,当然我说的是安卓方面的啦,嘿嘿,屏幕适配我们一般用1280*720的屏幕作为我们的主流开发屏,当然现在AndroidStudio上面可以直接看到所有种类的屏幕,大大方便了我们的开发.     我们遵循的原则是不用AbsoluteLayout(绝对布局),多用相对布局&线性布局(权重), 要用dp,不用px.     开发后期, 在不同分辨率屏幕上测试(480*800,1920*1080), 如果

银狐库存管家非菜鸟电子面单打印教程

  电子面单介绍 电子面单服务,是指由快递公司向卖家提供的一种通过热敏纸打印输出纸质物流面单的物流服务.普及电子面单将是未来物流发展的趋势,相比传统面单,电子面单主要有以下两种优势: 1)打印速度提升:电子面单是普通纸质面单的4-6倍,平均每单打印只需花费1-2秒钟,高效率的打单大大缓解电商等客户的大批量打单压力,轻松应对大促. 2)提高发货效率:传统发货模式,操作员需要将已打出的快递单和订单信息匹配后再发货,电子面单不需要把快递单和定单信息逐一匹配操作,在定单信息申请快递单号的时候就已完成了定

三江购物招股书疑点丛生未披露重要司法文件

傅勉 在昨日确定发行价格为人民币11.80元/股后,三江购物俱乐部股份有限公司(601116.SH,下称"三江购物")董事长陈念慈及其女儿的身家将达到30亿元人民币. 三江购物自称是浙江最大的本土化社区连锁超市企业.根据该公司招股意向书,陈念慈及其女儿出资设立的和安投资持有三江购物71.8%的股份.此外陈念慈个人还持有9269400股,占股比例2.6%. 不过,<第一财经日报>记者接到的举报材料显示,三江购物的招股意向书疑似存在多处尚未核实的表述:一,三江购物购并原控股公司

Linux下快速部署项目

由于Linux和Java一样开源,所以现在在服务器的部署上基本上都是采用Linux平台作为服务器,然后部署项目!在开发项目的过程中,绝大部分程序猿还是使用最经典的windows操作系统,虽然Linux也有桌面化的系统,对于国人来说,还是不太习惯,并且国内的软件绝大部分都不支持Linux平台,所以在使用的频率那是相当的少! 在开发中,开发环境中编译使用等一系列通过后,还不能说功能已经ok,因为环境一旦变化,出现的问题的可能是自己没有考虑的,所以程序猿都知道真实的环境才是最可靠的,有时候出现的问题,

用户注册的邮箱激活模块的设计与实现

----------------------------------------------------------------------------------------------[版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/52144698作者:朱培      ID:sdksdk0      邮箱: zhupei@tianfang1314.cn    ------------------