谷歌电子市场学习笔记第一天之上
生活随笔
收集整理的这篇文章主要介绍了
谷歌电子市场学习笔记第一天之上
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
一、环境搭建
1.安装最火、最快的Android模拟器:genymotion模拟器 2.安装服务器WebServer(里面是假数据) 3.在sd卡的根目录下放置WebInfos文件夹二、ActionBar的显示
活动条(ActionBar)是Android3.0的重要更新之一。ActionBar位于传统标题栏的位置,也就是显示的屏幕的顶部。ActionBar可显示应用的图标和Activity标题——也就是前面应用程序的顶部显示的内容。除此之外,ActionBar的右边还可以显示活动项(Action Item)。- Action Bar设计概念在Android3.0(APP 11)中被Google引入以后,在4.0版本之后更是被Google纳入设计规范中,从Google的各大App中都可以看到这种设计。
- 兼容低版本
- 引入android-support-v7-appcompat
- ActionBarCompat在使用中会调用一些资源文件,尤其是基于Theme.Appcompat的主题(Theme)用来规范Action Bar的显示。如果使用Action Bar的Activity没有使用基于Theme.Appcompat的主题,程序就不知道该如何配制Action Bar的显示,就会报错导致程序退出。
- 继承ActionBarActivity
三、ActionBar的搜素
学习参考Api Demos中的代码: 首先看一下Api Demos中Action Bar的搜素的案例:将Api Demos的工程导入开发工具中,找到代码:
四、搜素功能
在我们项目中实现搜素功能: 参考Android开发文档:http://wear.techbrood.com/ res/menu/main_activity_actions.xmlMainActivity.java 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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overridepublic 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菜单条目的点击事件*/@Overridepublic boolean onOptionsItemSelected(MenuItem item) {if(item.getItemId() == R.id.action_search){Toast.makeText(getApplicationContext(), "搜素", 0).show();}return super.onOptionsItemSelected(item);}//当搜素文本发生变化的时候@Overridepublic boolean onQueryTextChange(String newText) {Toast.makeText(getApplicationContext(), newText, 0).show();return false;}//当搜素提交的时候@Overridepublic boolean onQueryTextSubmit(String query) {Toast.makeText(getApplicationContext(), query, 0).show();return false;} } 运行效果:
五、ActionBar返回按钮的处理
详情页面DetailActivity.java package com.xbmu.google;import android.os.Bundle; import android.support.v7.app.ActionBarActivity; public class DetailActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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>在清单文件中声明: <activityandroid: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-dataandroid:name="android.support.PARENT_ACTIVITY"android:value="com.xbmu.google.MainActivity" /></activity> MainActivity.java: 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 {@Overrideprotected 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);}//...... } activity_main.xml: <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> 运行效果图:六、给ActionBar添加tab标签
1.在Drawable目录下写一个标签的状态选择器 res/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.实现自定义主题: res/values/themes.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></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 {@Overrideprotected 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{@Overridepublic void onTabReselected(Tab arg0, FragmentTransaction arg1) {// TODO Auto-generated method stub}@Overridepublic void onTabSelected(Tab arg0, FragmentTransaction arg1) {// TODO Auto-generated method stub}@Overridepublic 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")@Overridepublic boolean onCreateOptionsMenu(Menu menu) {MenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.main_activity_actions, menu);//如果运行的环境(部署到什么版本的手机)大于3.0if(android.os.Build.VERSION.SDK_INT > 11){SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();searchView.setOnQueryTextListener(this);//设置搜素的监听事件 }return true;}/**处理actionBar菜单条目的点击事件*/@Overridepublic boolean onOptionsItemSelected(MenuItem item) {if(item.getItemId() == R.id.action_search){Toast.makeText(getApplicationContext(), "搜素", 0).show();}return super.onOptionsItemSelected(item);}//当搜素文本发生变化的时候@Overridepublic boolean onQueryTextChange(String newText) {Toast.makeText(getApplicationContext(), newText, 0).show();return false;}//当搜素提交的时候@Overridepublic boolean onQueryTextSubmit(String query) {Toast.makeText(getApplicationContext(), query, 0).show();return false;} }
运行效果:
七、抽屉&抽屉的开关
布局文件activity_main.xml <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"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_centerHorizontal="true"android:layout_centerVertical="true" /><FrameLayoutandroid: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 implementsOnQueryTextListener {private ActionBarDrawerToggle drawerToggle;@Overrideprotected 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){@Overridepublic void onDrawerClosed(View drawerView) {super.onDrawerClosed(drawerView);Toast.makeText(getApplicationContext(), "抽屉关闭了", 0).show();}@Overridepublic void onDrawerOpened(View drawerView) {super.onDrawerOpened(drawerView);Toast.makeText(getApplicationContext(), "抽屉打开了", 0).show();}};mDrawerLayout.setDrawerListener(drawerToggle);//让开关和actionBar建立关系drawerToggle.syncState();}private class MyTabListener implements TabListener {@Overridepublic void onTabReselected(Tab arg0, FragmentTransaction arg1) {// TODO Auto-generated method stub}@Overridepublic void onTabSelected(Tab arg0, FragmentTransaction arg1) {// TODO Auto-generated method stub}@Overridepublic 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")@Overridepublic boolean onCreateOptionsMenu(Menu menu) {MenuInflater inflater = getMenuInflater();inflater.inflate(R.menu.main_activity_actions, menu);// 如果运行的环境(部署到什么版本的手机)大于3.0if (android.os.Build.VERSION.SDK_INT > 11) {SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();searchView.setOnQueryTextListener(this);// 设置搜素的监听事件}return true;}/** 处理actionBar菜单条目的点击事件 */@Overridepublic boolean onOptionsItemSelected(MenuItem item) {if (item.getItemId() == R.id.action_search) {Toast.makeText(getApplicationContext(), "搜素", 0).show();}return drawerToggle.onOptionsItemSelected(item)|super.onOptionsItemSelected(item);}// 当搜素文本发生变化的时候@Overridepublic boolean onQueryTextChange(String newText) {Toast.makeText(getApplicationContext(), newText, 0).show();return false;}// 当搜素提交的时候@Overridepublic boolean onQueryTextSubmit(String query) {Toast.makeText(getApplicationContext(), query, 0).show();return false;} } 运行效果图: 以上关于ActionBar的使用可以参考http://wear.techbrood.com/training/basics/actionbar/index.html全部代码下载地址: http://download.csdn.net/detail/btt2013/9355011
总结
以上是生活随笔为你收集整理的谷歌电子市场学习笔记第一天之上的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 基于SSM实现在线考试及题库管理系统
- 下一篇: 如何将APK上传到谷歌应用市场