<android.support.v7.widget.recyclerview android:layout_width="0dp" android:layout_height="0dp" android:layout_marginbottom

Size: px
Start display at page:

Download "<android.support.v7.widget.recyclerview android:layout_width="0dp" android:layout_height="0dp" android:layout_marginbottom"

Transcription

1 Android 天气预报简单记录 ( 二 ) 主要内容使用 RecyclerView 显示所有城市和未来 4 天天气使用 SearchView 来实现查询基于百度地图 API 实现定位, 更新天气 ViewPager 实现介绍界面使用 RecyclerView 显示所有城市和未来 4 天天气 RecyclerView 是 support.v7 包中的控件, 和 ListView 类似, 十分的灵活, 在有限窗口展示大量数据集 因为 ListView 性能问题 ( 迫使我们不得不使用自定义 ViewHolder 和 convertview 一起来完成复用优化工作 ) 以及仅支持竖向滚动的局限性,Google 官方重新定义了一个滚动控件, 也就是 RecyclerView 关键点在于 : 需要重写 RecyclerView.Adapter 和 RecyclerView.ViewHolder 设置布局管理器, 控制布局效果 ( 决定 item 的展示方向, 以及复用不可见的 item) 也就是,ViewHolder 的编写规范化了 ; RecyclerView 复用 Item 的工作 Google 全帮你搞定, 不再需要像 ListView 那样自己调用 settag; RecyclerView 需要多出一步 LayoutManager 的设置工作 ; 接下来, 贴出的代码都带有比较详细的注释 第一步, 先在 grade 文件里面添加依赖 :( 后面的版本号根据自身项目的 SDK 选择 ) implementation 'com.android.support:recyclerview-v7:28.0.0' 第二步, 布局文件 XML 引入控件, 以及对应的 item 布局的构造 ( 这里不再赘述 )

2 <android.support.v7.widget.recyclerview android:layout_width="0dp" android:layout_height="0dp" android:layout_marginbottom="8dp" android:layout_marginend="8dp" android:layout_marginleft="8dp" android:layout_marginright="8dp" android:layout_marginstart="8dp" android:layout_margintop="8dp" app:layout_constraintbottom_tobottomof="parent" app:layout_constraintend_toendof="parent" app:layout_constraintstart_tostartof="parent" /> 第三步, 实现 RecyclerView.Adapter

3 public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{ private List<City> list; // 数据 public MyAdapter(List<City> list) { // 构造函数 this.list = list; // 实现 ViewHolder, 这里每一个 item 里面展示省份, 地区, 以及城市代码 public static class ViewHolder extends RecyclerView.ViewHolder { TextView cityprovince; TextView cityname; TextView citycode; public ViewHolder(@NonNull View itemview) { super(itemview); cityprovince = itemview.findviewbyid(r.id.city_province); cityname = itemview.findviewbyid(r.id.city_name_tv); citycode = itemview.findviewbyid(r.id.city_code_tv); // 实例化 View, 实例化 public ViewHolder oncreateviewholder(@nonnull ViewGroup viewgroup, int i) { View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.city_item ViewHolder viewholder = new ViewHolder(v); return viewholder; // 绑定数据 public void onbindviewholder(@nonnull ViewHolder viewholder, final int i) { viewholder.cityprovince.settext(list.get(i).getprovince()); viewholder.cityname.settext(list.get(i).getcity()); viewholder.citycode.settext(list.get(i).getnumber()); viewholder.itemview.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { if (monitemclicklistener!= null){ monitemclicklistener.onitemclick(v, i); ); public int getitemcount() { return list == null? 0 : list.size(); 第四步, 写好对应的 Activity 部分代码 :

4 public class SelectCity extends AppCompatActivity { protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_select_city); initdata(); initview(); // 数据准备, 包括布局管理器设置 private void initdata() { MyApplication myapplication = (MyApplication) getapplication(); mlayoutmanager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, fa list = myapplication.getlist(); madapter = new MyAdapter(list); // 初始化视图以及各种点击事件 private void initview() { // 得到当前城市名称 titlecityname = findviewbyid(r.id.title_name_tv); Intent intent = getintent(); final String name = intent.getstringextra("cityname"); Log.d("intent", "initview: " + name ); titlecityname.settext(" 当前城市 :" + name); // 左上角回退 myback = findviewbyid(r.id.title_back_img); myback.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { finish(); ); // 点击事件 madapter.setonitemclicklistener(new MyAdapter.OnItemClickListener() { public void onitemclick(view view, int position) { City city = list.get(position); Intent intent = new Intent(); intent.putextra("citycode", city.getnumber()); intent.putextra("cityname", city.getcity()); intent.putextra("province",city.getprovince()); setresult(result_ok, intent); finish(); ); // RecyclerView 设置布局效果, 绑定带数据的适配器, 添加滚动方向 mrecyclerview = findviewbyid(r.id.city_list); mrecyclerview.setlayoutmanager(mlayoutmanager); mrecyclerview.setadapter(madapter); mrecyclerview.additemdecoration(new DividerItemDecoration(this, DividerItemDeco

5 这就是 RecyclerView 使用的三板斧了, 这里还出现了对于 item 的点击操作, 需要注意这里并没有像 ListView 一样有供外接调用的 API, 需要我们自己去实现 item 的点击处理 这里我的思路是, ViewHolder 绑定数据时设置监听,, 然后利用 Adapter 进行回调 // 在前面出现过的 MyAdapter 类里添加 private OnItemClickListener monitemclicklistener; public interface OnItemClickListener { void onitemclick(view view, int position); // 回调监听 public void setonitemclicklistener(myadapter.onitemclicklistener listener) { monitemclicklistener = listener; public void onbindviewholder(@nonnull ViewHolder viewholder, final int i) { viewholder.cityprovince.settext(list.get(i).getprovince()); viewholder.cityname.settext(list.get(i).getcity()); viewholder.citycode.settext(list.get(i).getnumber()); // 设置监听 viewholder.itemview.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { if (monitemclicklistener!= null){ monitemclicklistener.onitemclick(v, i); ); // 然后在对应的 Activity 里面设置对应的 setonitemclicklistener 即可 // 例如 : madapter.setonitemclicklistener(new MyAdapter.OnItemClickListener() { public void onitemclick(view view, int position) { City city = list.get(position); Intent intent = new Intent(); intent.putextra("citycode", city.getnumber()); intent.putextra("cityname", city.getcity()); intent.putextra("province",city.getprovince()); setresult(result_ok, intent); finish(); ); 那么现在我们已经利用 RecyclerView 实现了城市列表的展示, 同理横向展示未来四天的数据就可以依样画葫芦了 ( 未来四天天气数据的获取前一篇已介绍 ), 下面直接贴出相应代码 :

6 item 的布局文件

7 <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.constraintlayout xmlns:android=" xmlns:app=" xmlns:tools=" android:layout_width="wrap_content" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="0dp" android:layout_margintop="16dp" android:text="textview" app:layout_constraintend_toendof="parent" app:layout_constraintstart_tostartof="parent" app:layout_constrainttop_totopof="parent" /> <ImageView android:layout_width="80dp" android:layout_height="80dp" android:layout_marginend="8dp" android:layout_marginleft="8dp" android:layout_marginright="8dp" android:layout_marginstart="8dp" app:layout_constraintend_toendof="parent" app:layout_constraintstart_tostartof="parent" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginend="8dp" android:layout_marginleft="8dp" android:layout_marginright="8dp" android:layout_marginstart="8dp" android:text="textview" app:layout_constraintend_toendof="parent" app:layout_constraintstart_tostartof="parent" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginend="8dp" android:layout_marginleft="8dp" android:layout_marginright="8dp" android:layout_marginstart="8dp"

8 android:layout_margintop="8dp" android:text="textview" app:layout_constraintend_toendof="parent" app:layout_constraintstart_tostartof="parent" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginend="8dp" android:layout_marginleft="8dp" android:layout_marginright="8dp" android:layout_marginstart="8dp" android:layout_margintop="8dp" android:text="textview" app:layout_constraintend_toendof="parent" app:layout_constraintstart_tostartof="parent" /> </android.support.constraint.constraintlayout> Adapter

9 public class DayOfWeekForecastAdapter extends RecyclerView.Adapter<DayOfWeekForecastAda private List<ForecastWeather> list; private Map<String, Integer> imgsrcforweather; private Calendar calendar; public DayOfWeekForecastAdapter(List<ForecastWeather> list, Map<String, Integer> im this.list = list; this.imgsrcforweather = imgsrcforweather; calendar = public ViewHolder oncreateviewholder(@nonnull ViewGroup viewgroup, int i) { View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.day_week_weather_item, viewgroup, false); ViewHolder viewholder = new ViewHolder(view); return viewholder; public void onbindviewholder(@nonnull ViewHolder viewholder, int i) { String type = list.get(i).gettype(); viewholder.eachdayweek.settext((calendar.get(calendar.month) + 1) + " 月 " + list viewholder.eachdaytemperature.settext(list.get(i).getlow() + " ~ " + list.get(i viewholder.eachdayclimate.settext(type); viewholder.eachdaywind.settext(list.get(i).getfengxiang()); viewholder.eachdaytype.setimageresource(imgsrcforweather.get(type)); public int getitemcount() { return list == null? 0 : list.size(); public static class ViewHolder extends RecyclerView.ViewHolder { TextView eachdayweek; ImageView eachdaytype; TextView eachdaytemperature; TextView eachdayclimate; TextView eachdaywind; public ViewHolder(@NonNull View itemview) { super(itemview); eachdayweek = itemview.findviewbyid(r.id.each_day_week); eachdaytype = itemview.findviewbyid(r.id.each_day_type); eachdaytemperature = itemview.findviewbyid(r.id.each_day_temperature); eachdayclimate = itemview.findviewbyid(r.id.each_day_climate); eachdaywind = itemview.findviewbyid(r.id.each_day_wind);

10 Activity mlayoutmanager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); mrecyclerview = findviewbyid(r.id.day_week_weather); mrecyclerview.setlayoutmanager(mlayoutmanager); madapter = new DayOfWeekForecastAdapter(info.getDayOfWeekForecastWeather(), imgsrcforwe mrecyclerview.setadapter(madapter); 结果 效果如图 未来4天的天气 使用SearchView来实现查询 可选城市列表 直接讲一下我的思路 利用SearchView来作为搜索的控件 优点在于有内置的监听函数可以调用 方 便实现 在每次得到控件内容时 对城市列表进行筛选操作 在这里实现对中文 拼音 首字母的筛

11 选 ), 得到符合要求的有序的城市列表之后, 重新传递给 Adapter 对象去展现 看起来十分的简单, 下面就是具体的实现 : 在选择城市视图界面添加上控件 SearchView <SearchView android:id="@+id/city_sv" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginend="8dp" android:layout_marginleft="8dp" android:layout_marginright="8dp" android:layout_marginstart="8dp" android:layout_margintop="8dp" android:background="@android:color/background_light" app:layout_constraintend_toendof="parent" app:layout_constraintstart_tostartof="parent" app:layout_constrainttop_tobottomof="@+id/title_name_tv" /> 在选择城市的 Activity 里面注册 SearchView, 并实现过滤函数

12 msearchview = findviewbyid(r.id.city_sv); msearchview.setonquerytextlistener(new SearchView.OnQueryTextListener(){ public boolean onquerytextsubmit(string query) { return false; // 当监听到 SearchView 里面的内容发生变化, // 调用过滤函数得到新的城市数据集, 并更新 Adapter 适配器 // 然后 RecyclerView 加载新的适配器展示城市列表 public boolean onquerytextchange(string newtext) { filterdata(newtext); mrecyclerview.setadapter(madapter); return true; ); // 过滤函数 private void filterdata(string newtext) { filterdatalist = new ArrayList<>(); // 如果当前输入为空, 展示全部数据 if (TextUtils.isEmpty(newText)) { madapter = new MyAdapter(list); else { // 清空过滤数据, 因为每次输入的改变都会造成数据的变化 filterdatalist.clear(); // 遍历列表里的城市, 分别对城市名, 全拼, 首字母拼音进行筛选, 就是判断当前输入是否为字符串的 for (City c : list) { if (c.getcity().contains(newtext)) { filterdatalist.add(c); else if (c.getallpy().indexof(newtext.touppercase().tostring()) == 0) filterdatalist.add(c); else if (c.getallfirstpy().indexof(newtext.touppercase().tostring()) filterdatalist.add(c); // 返回过滤数据的适配器 madapter = madapter.updataview(filterdatalist); madapter.setonitemclicklistener(new MyAdapter.OnItemClickListener() { public void onitemclick(view view, int position) { City city = filterdatalist.get(position); Intent intent = new Intent(); intent.putextra("citycode", city.getnumber()); setresult(result_ok, intent); finish(); ); 为了搜索后让列表有序排列, 尽可能让我们希望的城市出现在上面, 这里默认是字典排序, 主要做法就是, 对城市 bean 实现 compareto 方法, 调用 Collection.sort() 即可

13 public class City implements Comparable<City>{ //... public int City o) { return o.getcity().compareto(this.getcity()); // 用城市名进行比较 public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{ //... public MyAdapter updataview(list<city> filterdatalist) { Collections.sort(filterDataList); return new MyAdapter(filterDataList); 结果效果如图 :

14 可选城市列表 基于百度地图 API 实现定位, 更新天气百度地图 API 实现定位的配置其实只要根据官方文档就够了, 这里就不在描述什么申请 key, 在 AndroidManifest.xml 里面添加权限和服务等等, 给出官方文档 安装要求操作即可 同样走一遍实现思路, 配置好要求, 导入好 SDK 之后, 我们就可以使用百度的定位 API 如何实现我们想要的定位效果呢? 构造定位服务对象, 注册监听函数, 配置相关选项 ( 这里主要是设置详细地址为 true), 实现 BDAbstractLocationListener 接口, 得到返回的定位信息去更新城市 当然具体细节, 比如注销点击事件, 动画旋转等等也需要考虑 具体代码如下 : 搜索

15 // oncreate 里面构造对象, 注册监听函数, 对定位控件设置点击事件 locationclient = new LocationClient(getApplicationContext()); locationclient.registerlocationlistener(new MyLocationListener()); locationimg = findviewbyid(r.id.title_location_img); locationimg.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { locationimg.setclickable(false); initlocation(); updateanimation(mainactivity.this, locationimg); locationclient.start(); ); private void initlocation() { LocationClientOption option = new LocationClientOption(); option.setisneedaddress(true); // 需要地址信息 locationclient.setlocoption(option); // 设置需要旋转的图片对象 private void updateanimation(context context, ImageView update) { Animation circle_anim = AnimationUtils.loadAnimation(context, R.anim.anim_round LinearInterpolator interpolator = new LinearInterpolator(); // 设置匀速旋转, 在 xml circle_anim.setinterpolator(interpolator); update.startanimation(circle_anim); // 开始动画 // 实现 BDAbstractLocationListener 接口 public class MyLocationListener extends BDAbstractLocationListener { public void onreceivelocation(bdlocation bdlocation) { String city = bdlocation.getcity(); String province = bdlocation.getprovince(); city = city.substring(0, city.length() - 1); // 返回数据的是北京市这种格式, 去掉 for (City c : list) { if (c.getcity().equals(city)) { citycode = c.getnumber(); Log.d("Location: ", city + " " + province + " " + citycode); break; myupdate.setclickable(false); updateanimation(mainactivity.this, myupdate); requestweatherbycode(citycode);// 调用更新天气方法 locationimg.clearanimation(); locationclient.stop(); locationimg.setclickable(true);

16 结果 效果如图 原先天气信息 点击定位之后(返回北京市) 实现介绍界面 ViewPager 介绍一下实现思路 核心就是ViewPager的addOnPageChangeListener方法 实现Adapter和对应的 Fragment 这里有一个新的概念Fragment 就是片段 作为一个组件来嵌入到Activity里面 更多信息 参考Google官方文档 首先我先创建了一个新的Activity 选择的是Tabbed Activity 生成后 有三个文件 分别是一个 Activity 一个activity的xml布局 一个fragment的xml布局 activity的xml布局 主要就是一个ViewPager 下面是三个button按钮和圆形的指示器

17 <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.coordinatorlayout xmlns:android=" xmlns:app=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:fitssystemwindows="true" tools:context=".introductionactivity"> <android.support.v4.view.viewpager android:layout_width="match_parent" android:layout_height="match_parent" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:layout_marginbottom="?attr/actionbarsize" android:alpha="0.12" /> <FrameLayout android:layout_width="match_parent" android:layout_height="?attr/actionbarsize" android:layout_gravity="bottom" <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentdescription="pre" android:layout_gravity="start center" android:visibility="gone" /> <!-- 圆形指示器 --> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:orientation="horizontal">

18 <ImageView android:layout_width="8dp" android:layout_height="8dp" /> <ImageView android:layout_width="8dp" android:layout_height="8dp" android:layout_marginend="8dp" android:layout_marginright="8dp" android:layout_marginleft="8dp" android:layout_marginstart="8dp" /> <ImageView android:layout_width="8dp" android:layout_height="8dp" /> </LinearLayout> <android.support.v7.widget.appcompatbutton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end center" android:text="finish" android:contentdescription="finish" android:visibility="gone" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentdescription="next" android:layout_gravity="end center" /> </FrameLayout> </android.support.design.widget.coordinatorlayout> fragment 的 xml 布局, 就是里面放一个 ImageView 控件

19 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android=" xmlns:app=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".introductionactivity$placeholderfragment"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginbottom="?attr/actionbarsize" /> </FrameLayout> 最后就是 Activity, 主要就是切换 fragment, 改变背景颜色和图片, 细节注释在代码里面 :

20 public class IntroductionActivity extends AppCompatActivity { private SectionsPagerAdapter msectionspageradapter; private ViewPager mviewpager; private int bgcolors[]; private int currentposition; private AppCompatButton buttonfinish; private ImageButton buttonpre; private ImageButton buttonnext; private ImageView[] indicators; private static Map<Integer, Integer> protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // 作为一个引导性的界面, 只有在应用开启的第一次才会出现, 所以判断是不是第一次启动 final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this if (sp.getboolean("first_launch", true)){ setcontentview(r.layout.activity_introduction); // 得到引导界面的三张图片 introduction = new HashMap<>(); introduction.put(1,r.drawable.screenshot_1); introduction.put(2,r.drawable.screenshot_2); introduction.put(3,r.drawable.screenshot_3); // 初始化控件 initview(); // 得到引导界面的 3 种颜色 bgcolors = new int[]{contextcompat.getcolor(this, R.color.colorPrimary), ContextCompat.getColor(this, R.color.cyan_500), ContextCompat.getColor(this, R.color.light_blue_500); // ViewPager 的切换 fragment 的监听函数 mviewpager.addonpagechangelistener(new ViewPager.OnPageChangeListener() { // 滑动切换颜色 public void onpagescrolled(int i, float v, int i1) { int colorupdate = (Integer) new ArgbEvaluator().evaluate(v, bgcolor mviewpager.setbackgroundcolor(colorupdate); // 不同 fragment, 更新 fragment 里面的按钮和圆形指示器

21 public void onpageselected(int i) { currentposition = i; updateindicators(i); mviewpager.setbackgroundcolor(bgcolors[i]); buttonpre.setvisibility(i == 0? View.GONE : View.VISIBLE); buttonnext.setvisibility(i == 2? View.GONE : View.VISIBLE); buttonfinish.setvisibility(i == 2? View.VISIBLE : View.GONE); public void onpagescrollstatechanged(int i) { ); // finish 登记已启动信息, 打开主页面 buttonfinish.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { SharedPreferences.Editor ed = sp.edit(); ed.putboolean("first_launch", false); ed.apply(); navigatetomainactivity(); ); // 切换 fragment buttonnext.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { currentposition += 1; mviewpager.setcurrentitem(currentposition, true); ); buttonpre.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { currentposition -= 1; mviewpager.setcurrentitem(currentposition, true); ); else { navigatetomainactivity(); finish(); // 跳转到主页面 private void navigatetomainactivity() { Intent i = new Intent(this, MainActivity.class);

22 i.setflags(intent.flag_activity_new_task); startactivity(i); // 初始化控件 private void initview(){ msectionspageradapter = new SectionsPagerAdapter(getSupportFragmentManager()); mviewpager = findviewbyid(r.id.container); mviewpager.setadapter(msectionspageradapter); buttonfinish = findviewbyid(r.id.buttonfinish); buttonfinish.settext("finish"); buttonfinish.setenabled(true); buttonnext = findviewbyid(r.id.imagebuttonnext); buttonpre = findviewbyid(r.id.imagebuttonpre); indicators = new ImageView[] { findviewbyid(r.id.imageviewindicator0), findviewbyid(r.id.imageviewindicator1), findviewbyid(r.id.imageviewindicator2) ; // 更新圆形指示器, 选择亮或者不亮 private void updateindicators(int position) { for (int i = 0; i < indicators.length; i++) { indicators[i].setbackgroundresource( i == position? R.drawable.introduction_indicator_selected : R.drawable.introduction_indicator_unselected ); /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { private static final String ARG_SECTION_NUMBER = "section_number"; public PlaceholderFragment() { // 保存下 sectionnumber 进行传递 public static PlaceholderFragment newinstance(int sectionnumber) { PlaceholderFragment fragment = new PlaceholderFragment(); Bundle args = new Bundle(); args.putint(arg_section_number, sectionnumber); fragment.setarguments(args); return fragment; public View oncreateview(layoutinflater inflater, ViewGroup container, Bundle savedinstancestate) {

23 // 初始化 fragment 里面的控件 View rootview = inflater.inflate(r.layout.fragment_introduction, container, int num = getarguments().getint(arg_section_number); // 根据当前的 sectionnumber 选择图片 ImageView imageview = rootview.findviewbyid(r.id.introductionimg); imageview.setimageresource(introduction.get(num)); return rootview; // 适配器 public class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); public Fragment getitem(int position) { return PlaceholderFragment.newInstance(position + 1); public int getcount() { // Show 3 total pages. return 3; 结果效果如图 :( 丑是丑了点, 但道理就是这样的 )

24 引导页1 总结 引导页2 引导页3 到这里全部就结束了 其实主要明白思路是怎么样 很多东西就迎刃而解 其他的东西 比如具体控件 怎么使用 去官方文档或者一些博客了解一下API接口也就很快能实现 总的来说 只要思路清晰 有 比较好的学习能力 剩下的需要就是实现功能的代码能力 优美而可读

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new ListView 自訂排版 主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new int[]{r.drawable.dog1, R.drawable.dog2,

More information

RecyclerView and CardVew

RecyclerView and CardVew RecyclerView and CardView 建國科技大學資管系饒瑞佶 2017/10 V1 CardView CardView A CardView is a ViewGroup. Like any other ViewGroup, it can be added to youractivity or Fragment using a layout XML file. To create an

More information

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 : EditText 实现城市搜索 1801210778 邹宇航 摘要 : 使用 EditText 实现搜索城市的功能, 以此为依据更新 ListView 1. 效果图 : 2. 主要步骤 (1) 在 select-city.xml 布局文件中中添加 EditText 控件用作搜索框, 然后添加 ListView 控件用来显示城市名字内容 代码如下 : 预览图 : (2) 在 SelectCity.java

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

Android Fragment

Android Fragment Android Fragment 建國科技大學資管系饒瑞佶 2017/10 V1 Android 3.0 後才支援 Fragment 解決部分 App 適應螢幕大小的問題 它類似於 Activity, 可以像 Activity 可以擁有自己的版面設計, 也和 Activity 一樣有自己的生命週期 ( 具備 oncreate() oncreateview() 與 onpause() 方法 ) LifeCycle

More information

Microsoft Word - weather12 刷新按钮动画+搜索框+bug处理.docx

Microsoft Word - weather12 刷新按钮动画+搜索框+bug处理.docx 一 刷新按钮的动画效果 : 在刷新按钮的位置做两个按钮的布局, 一个是原来的静态图片, 一个是旋转的动画, 然 后控制这两个效果的显示和隐藏 ( 一 ) 刷新按钮的 style: 1. 在 app/src/main/res/values/ styles.xml 文件里添加一个 style: 2. 在 drawable 文件夹下新建一个 title_update_anim.xml, 添加如下内容 注

More information

Microsoft Word - AEL CH05.doc

Microsoft Word - AEL CH05.doc 5-2 AutoCompleteTextView AutoCompleteTextView 非常類似 EditText, 屬於文字輸入方塊 ; 不過 AutoCompleteTextView 會在使用者輸入幾個字時就會顯示提示文字, 方便使用者選取而無需輸入所有文字, 是一種體貼使用者輸入的設計 AutoCompleteTextView 的提示列表與 Spinner 的選項列表建立方式相同, 需要建立字串陣列來儲存欲提示的文字

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

Android Service

Android Service Android Service- 播放音樂 建國科技大學資管系 饒瑞佶 2013/7 V1 Android Service Service 是跟 Activity 並行 一個音樂播放程式若沒使用 Service, 即使按 home 鍵畫面離開之後, 音樂還是照播 如果再執行一次程式, 新撥放的音樂會跟先前撥放的一起撥, 最後程式就會出錯 執行中的程式完全看不到! 但是, 寫成 Service 就不同了

More information

Microsoft Word - 第4章 3D相册.doc

Microsoft Word - 第4章 3D相册.doc 第 4 章 3D 相册 学习目标 u 掌握相册界面的开发, 实现相册的立体与倒影效果 在现实生活中, 我们浏览照片时, 不同的相册软件有不同的浏览效果 本章主要实现了一个 3D 效果的相册, 该相册中的图片可以循环滑动展示 4.1 3D 相册 任务综述 相册界面主要是展示一组图片的立体效果, 并显示每个图片的倒影, 左右滑动可以切换不同的图片到 界面的中间位置, 同时在图片下方显示当前图片的标题,

More information

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e Android Studio Debugging 本篇教學除了最基本的中斷點教學之外, 還有條件式中斷的教學 條件式中斷是進階的除錯技巧, 在某些特定情況中, 我們有一個函數可能會被呼叫數次, 但是我們只希望在某種條件成立時才進行中斷, 進而觀察變數的狀態 而條件式中斷這項技巧正是符合這項需求 本教學分兩部分 單步除錯 (Page2~11, 共 10) 條件式中斷點 (Page12~17, 共 6)

More information

Dynamic Layout in Android

Dynamic Layout in Android Dynamic Layout in Android 建國科技大學資管系 饒瑞佶 2013/5 V1 Layout 多半都透過 res/layout/xml 格式設定來達成 Android 是 OOP, 所以可以動態產生 Layout 重點是 Layout 的階層關係 (Hierarchy) 需要處理對應事件 最後一樣用 setcontentview 加入 Layout 一 加入現有 Layout 中

More information

教案模板4-2

教案模板4-2 移动终端开发技术 电子教案 第三单元 ListView 的功能和用法 章节名称 : 第二章 软件要美观 UI 开发的点点滴滴 所属专业 ( 教研室 ): 计算机软件技术 制定人 : 陈媛媛 合作人 : 制定时间 : 2018 年 2 月 日照职业技术学院 单元标题 ListView 的功能和用法 单元教学学时 在整体设计中的位置 4 课时 第 7 次 授课班级上课地点一体化教室 上课时间周月日第节

More information

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:android= 第 6 章广播接收者 应用案例 案例 6-1 CallRecord( 通话记录 ) 一 案例描述 1 考核知识点 030006001: 广播接收者简介 030006002: 广播接收者的创建 2 练习目标 广播的静态注册和使用 使用广播处理处理事件 3 需求分析手机最重要的功能就是通话功能, 同样储存通话记录也是必不可少的 该案例使用广 播接收者自己实现通话记录的功能 包括呼出电话 已接来电 未接来电以及通话产生的

More information

Microsoft Word 杨超-spinner实现省市县的三级联动.docx

Microsoft Word 杨超-spinner实现省市县的三级联动.docx Spinner 实现省市县的三级联动 1801210908- 杨超 下拉框 Spinner 控件 : 常用属性 属性 说明 android:prompt 下拉提示信息 android:spinnermode 下拉显示方法 android:entries 配置下拉框数据源 android:dropdownwidth 下拉框显示模式下的显示项宽度 常用方法 方法 说明 getdropdownwidth()

More information

建模与图形思考

建模与图形思考 F06_c 观摩 :ContentProvider 基於軟硬整合觀點 架构與 DB 引擎移植方法 ( c) By 高煥堂 4 通用性基类 ContentProvider 基於軟硬整合觀點 的使用范例 刚才的范例里, 我们直接使用 DataPersist 类的接口来与 SQLite 沟通 本节将替 DataPersist 配上 ContentProvider 基类, 让 Client 能透过 ContentProvider

More information

Android + NFC

Android + NFC Android + NFC 建國科技大學資管系饒瑞佶 2017/3 v1 讀取 Tag UUID Android 2.3.3 (API Level 10) 才有支援完整的 NFC 功能 只要 NFC 相容都讀的到 (NFC 或 Mifare) 建立新專案修改 AndroidManifest.xml 加入 , 如果有 NFC Tag 進入感測範圍, 本 App 也會變成可處理的

More information

第 5 章 Android 控件进阶操作实战 ArrayAdapter 适配器 ListView 的数据渲染都需要借助适配器来完成, 首先看一下结合最简单的 ArrayAdapter 来实现 ListView 主布局文件 (activity_main.xml) 代码如下 : <?

第 5 章 Android 控件进阶操作实战 ArrayAdapter 适配器 ListView 的数据渲染都需要借助适配器来完成, 首先看一下结合最简单的 ArrayAdapter 来实现 ListView 主布局文件 (activity_main.xml) 代码如下 : <? 108 Android 开发入门百战经典 第 5 章 Android 控件进阶操作实战 5.1 控之经典 ListView ListView 是最经典的控件之一, 虽然现在其江山地位不稳, 将要被 RecylerView 取 代, 但设计理念是很经典的, 而且很多程序员还是习惯了 ListView, 因此我们还需要对 ListView 进行深入学习 ListView 内容非常多, 读者要有足够的耐心进行学习,

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

01_Service

01_Service 移动平台应用软件开发 Service 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一七年 什么是 Service 与 Activity 一样, 同属 Android 基本组件 后台运行, 不与用户交互, 没有可视化界面 最常见的 Service 如 : 在后台播放歌曲 后台执行文件的下载 同样需在 AndroidManifest.xml

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-065Big5 Title : Sun Certified Programmer for the Java 2 Platform, SE 6.0 Version : Demo 1 / 14 1. 35. String #name = "Jane Doe"; 36. int

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

_banneradview.setuserkeywords("swimming"); _banneradview.setusercategories("1,3,4"); _banneradview.setusergender(jdbanneradview.gender_male); _bannera

_banneradview.setuserkeywords(swimming); _banneradview.setusercategories(1,3,4); _banneradview.setusergender(jdbanneradview.gender_male); _bannera 京东与 AdView APP 联盟 SDK Android 版接口说明文档 1.5 1. 嵌入 SDK 1.1 添加 SDK Android Studio 环境 : 菜单 New->New Module->Import.jar or.aar package, 然后选中 App 联盟 SDK 所带的 jar 文件 Eclipse+ADT 环境 : 将 App 联盟 SDK 所带的 jar 文件拷贝到

More information

Android 编程基础 Android 开发教程 & 笔记 1

Android 编程基础 Android 开发教程 & 笔记 1 Android 开发教程 & 笔记 1 多式样 ProgressBar 撰写 : 地狱怒兽 联系 :zyf19870302@126.com 普通圆形 ProgressBar 该类型进度条也就是一个表示运转的过程, 例如发送短信, 连接网络等等, 表示一个过程正 在执行中 一般只要在 XML 布局中定义就可以了

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

Android Android Android SDK iv

Android Android Android SDK iv Android Market Google Android SDK Apple Google Microsoft b2c b 2010 Internet Android how why iii Android 240... Android Android SDK iv Android Market Google Android SDK Visual C++ Java N-tier J2EE Unix/Linux

More information

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc Java C++ Pascal C# C# if if if for while do while foreach while do while C# 3.1.1 ; 3-1 ischeck Test() While ischeck while static bool ischeck = true; public static void Test() while (ischeck) ; ischeck

More information

建立Android新專案

建立Android新專案 Android 智 慧 型 手 機 程 式 設 計 Android WebService 建 國 科 技 大 學 資 管 系 饒 瑞 佶 2012/4 V1 2012/8 V2 2013/5 V3 2014/10 v4 提 醒 這 節 的 內 容 針 對 的 是 MS 的 Web Service 或 是 使 用 SOAP(Simple Object Access Protocol) 標 準 建 立

More information

建模与图形思考

建模与图形思考 C03_c 基 於 軟 硬 整 合 觀 點 JNI: 从 C 调 用 Java 函 数 ( c) By 高 煥 堂 3 How-to: 基 於 軟 硬 整 合 觀 點 从 C 调 用 Java 函 数 如 果 控 制 点 摆 在 本 地 C 层, 就 会 常 常 1. 从 本 地 C 函 数 去 调 用 Java 函 数 ; 2. 从 本 地 C 函 数 去 存 取 Java 层 对 象 的 属 性

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

幻灯片 1

幻灯片 1 Delivering accurate maps to Chinese Android users 为中国安卓用户提供准确的地图服务 Work at Mapbox includes: Android apps, demos, starter kits, documentation, support, syncing Android team with other departments, etc.

More information

任务实施 (1) 创建项目 图 3-1 欢迎界面 首先创建一个工程, 将其命名为 BoXueGu, 指定包名为 com.boxuegu (2) 导入界面图片将欢迎界面所需要的背景图片 launch_bg.png 导入到 drawable 文件夹中, 项目的 icon 图标 app_icon.png

任务实施 (1) 创建项目 图 3-1 欢迎界面 首先创建一个工程, 将其命名为 BoXueGu, 指定包名为 com.boxuegu (2) 导入界面图片将欢迎界面所需要的背景图片 launch_bg.png 导入到 drawable 文件夹中, 项目的 icon 图标 app_icon.png 第 3 章注册与登录模块 学习目标 掌握欢迎界面的开发, 能够独立制作欢迎界面 ; 掌握注册和登录模块的开发, 能够实现用户登录功能 博学谷项目的注册与登录模块主要用于创建用户账号, 管理用户信息 当用户注册成功后会跳转到登录界面, 用户登录后可以修改密码以及设置密保, 且只有设置过密保的账户才可以找回密码 本章将针对注册与登录模块进行详细讲解 3.1 欢迎界面 任务综述 在实际开发中, 开启应用程序时首先会呈现一个欢迎界面,

More information

DU Ad Platform_SDK 安卓接入指南 DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0 百度在线网络技术 ( 北京 ) 有限公司 百度在线网络技术 ( 北京 ) 有限公司 - 1 -

DU Ad Platform_SDK 安卓接入指南 DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0 百度在线网络技术 ( 北京 ) 有限公司 百度在线网络技术 ( 北京 ) 有限公司 - 1 - DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0-1 - 目录 1. 获取身份... 1 2. 加载与配置... 2 2.1 加载 SDK 文件... 2 2.2 配置 AndroidManifest.xml... 2 2.3 混淆代码... 3 3. 初始化... 4 4. 功能使用... 4 第 1 页共 1

More information

untitled

untitled JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE

More information

Android 天气预报简单记录 ( 一 ) 主要内容为什么选择 ConstraintLayout 用 dom4j 来解析 XML 利用 Map 数据结构来实现图片的切换更新动画处理 为什么选择 ConstraintLayout 在几年前, 布局还是各种嵌套的天下, 但无论是 LinearLayou

Android 天气预报简单记录 ( 一 ) 主要内容为什么选择 ConstraintLayout 用 dom4j 来解析 XML 利用 Map 数据结构来实现图片的切换更新动画处理 为什么选择 ConstraintLayout 在几年前, 布局还是各种嵌套的天下, 但无论是 LinearLayou Android 天气预报简单记录 ( 一 ) 主要内容为什么选择 ConstraintLayout 用 dom4j 来解析 XML 利用 Map 数据结构来实现图片的切换更新动画处理 为什么选择 ConstraintLayout 在几年前, 布局还是各种嵌套的天下, 但无论是 LinearLayout 还是 RelativeLayout 这种传统布局带来的特点是随着布局的复杂度的上升, 嵌套的层次就越来越多,

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

javaexample-02.pdf

javaexample-02.pdf n e w. s t a t i c s t a t i c 3 1 3 2 p u b l i c p r i v a t e p r o t e c t e d j a v a. l a n g. O b j e c t O b j e c t Rect R e c t x 1 y 1 x 2 y 2 R e c t t o S t r i n g ( ) j a v a. l a n g. O

More information

内文-2.indd

内文-2.indd 客户端服务端音乐资源信息 : 1. 项目需求从本项目开始, 我们一起开发一个简单的在线音乐播放器, 它具有以下功能 (1) 程序启动时显示一个启动画面, 如图 1-1 所示 (2) 在程序主页面显示服务器上的歌曲列表, 包括歌手名与歌曲名, 单击列表条目可实现在线音乐播放, 单击 播放 暂停 上一曲 下一曲 按钮可实现对应的功能, 进度条可以显示歌曲播放进度, 如图 1-2 所示 图 1-1 程序启动画面

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);

More information

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii 前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii C# 7 More Effective C# C# C# C# C# C# Common Language Runtime CLR just-in-time

More information

實作SQLiteOpenHelper類別

實作SQLiteOpenHelper類別 SQLiteOpenHelper 類別存取 SQLite 建國科技大學資管系 饒瑞佶 2013/5 V1 Android 連結資料庫 MySQL SQL Server Web Service 遠端資料庫 Internet Intranet Android SQLite 單機資料庫 Android vs. SQLite 透過 SQLiteOpenHelper 類別來操作 建立資料庫 ( 建構子 ) 建立資料表

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

CHAPTER VC#

CHAPTER VC# 1. 2. 3. 4. CHAPTER 2-1 2-2 2-3 2-4 VC# 2-5 2-6 2-7 2-8 Visual C# 2008 2-1 Visual C# 0~100 (-32768~+32767) 2 4 VC# (Overflow) 2-1 2-2 2-1 2-1.1 2-1 1 10 10!(1 10) 2-3 Visual C# 2008 10! 32767 short( )

More information

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074> 程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 pengxin@fudan.edu.cn 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学

More information

untitled

untitled 1 Outline 類别 欄 (1) 類 類 狀 更 易 類 理 若 類 利 來 利 using 來 namespace 類 ; (2) namespace IBM class Notebook namespace Compaq class Notebook 類别 類 來 類 列 欄 (field) (property) (method) (event) 類 例 立 來 車 類 類 立 車 欄 料

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, http://debut.cis.nctu.edu.tw/~chi Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, : POSITIVE_INFINITY NEGATIVE_INFINITY

More information

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc 1.1 组合 Hibernate 与 Spring 1. 在 Eclipse 中, 新建一个 Web project 2. 给该项目增加 Hibernate 开发能力, 增加 Hibernate 相关类库到当前项目的 Build Path, 同时也提供了 hibernate.cfg.xml 这个配置文件 3. 给该项目增加 Spring 开发能力, 增加 spring 相关类库到当前项目的 Build

More information

Microsoft Word - A201103-528_1299547322.doc

Microsoft Word - A201103-528_1299547322.doc 5 10 15 20 25 30 基 于 Android 平 台 的 人 机 交 互 的 研 究 与 实 现 郁 亚 男 ( 北 京 邮 电 大 学 软 件 学 院, 北 京 100876) 摘 要 : 随 着 计 算 的 发 展, 计 算 变 得 越 来 越 自 由, 在 资 源 使 用 方 面 也 越 来 越 灵 活 移 动 终 端 由 于 无 线 通 信 网 络 传 输 速 率 的 提 高,

More information

RxJava

RxJava RxJava By 侦跃 & @hi 头 hi RxJava 扩展的观察者模式 处 观察者模式 Observable 发出事件 Subscriber 订阅事件 bus.post(new AnswerEvent(42)); @Subscribe public void onanswer(answerevent event) {! }! Observable observable = Observable.create(new

More information

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;

More information

Swing-02.pdf

Swing-02.pdf 2 J B u t t o n J T e x t F i e l d J L i s t B u t t o n T e x t F i e l d L i s t J F r a m e 21 2 2 Swing C a n v a s C o m p o n e n t J B u t t o n AWT // ToolbarFrame1.java // java.awt.button //

More information

Microsoft Office SharePoint Server MOSS Web SharePoint Web SharePoint 22 Web SharePoint Web Web SharePoint Web Web f Lists.asmx Web Web CAML f

Microsoft Office SharePoint Server MOSS Web SharePoint Web SharePoint 22 Web SharePoint Web Web SharePoint Web Web f Lists.asmx Web Web CAML f Web Chapter 22 SharePoint Web Microsoft Office SharePoint Server MOSS Web SharePoint Web SharePoint 22 Web 21 22-1 SharePoint Web Web SharePoint Web Web f Lists.asmx Web Web CAML f Views.asmx View SharePoint

More information

EJB-Programming-3.PDF

EJB-Programming-3.PDF :, JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Value Object Design Pattern J2EE Design Patterns Value Object Value Object Factory J2EE EJB Test Client

More information

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y 拼图游戏 任务说明 本实例实现了拼图游戏的开发 运行程序, 单击 开始 按钮将打乱图片的位置, 效果如图 1 所示, 然后通过鼠标单击图片进行移动, 直到将所有图片都移动到正确位置, 游戏过关, 过关后的效果如图 2 所示 图 1 打乱图片位置的效果图 2 图片移动到正确位置的效果 关键技术 本程序主要通过 Swing 与枚举类实现, 程序将一幅完整的图片平均分成 9 部分, 每一部分为一个正方形,

More information

DU Ad Platform_SDK for Android 接 入 手册 Version: DuWeatherSDK_1.1.6 前提 : DuWeather SDK 需要依赖 DU Ad Platform_SDK HW 或 CW ( 含 ) 以上版本 在接 入 DuW

DU Ad Platform_SDK for Android 接 入 手册 Version: DuWeatherSDK_1.1.6 前提 : DuWeather SDK 需要依赖 DU Ad Platform_SDK HW 或 CW ( 含 ) 以上版本 在接 入 DuW DU Ad Platform_SDK for Android 接 入 手册 Version: DuWeatherSDK_1.1.6 前提 : DuWeather SDK 需要依赖 DU Ad Platform_SDK HW1.0.9.8 或 CW1.0.9.7 ( 含 ) 以上版本 在接 入 DuWeather 之前需要完成 HW 或 CW 初始化, 加载, 代码混淆三个部分 DU Ad Platform_SDK

More information

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

More information

图形学 Project 2 要求 任意两个多边形, 求出其相交的区域 使用说明 例 1 第一步, 与 Project 1 画多边形的方法相同, 画一个多边形 ; 第二步, 单击 INTERSECT WITH, 随后画出第二个多边形 ; 第三步, 单击 FILL 进行填充

图形学 Project 2 要求 任意两个多边形, 求出其相交的区域 使用说明 例 1 第一步, 与 Project 1 画多边形的方法相同, 画一个多边形 ; 第二步, 单击 INTERSECT WITH, 随后画出第二个多边形 ; 第三步, 单击 FILL 进行填充 图形学 Project 2 要求 任意两个多边形, 求出其相交的区域 使用说明 例 1 第一步, 与 Project 1 画多边形的方法相同, 画一个多边形 ; 第二步, 单击 INTERSECT WITH, 随后画出第二个多边形 ; 第三步, 单击 FILL 进行填充 例 2 单击 CLEAR, 重新回到初始状态, 下面让我们看一下自交多边形的情况 当单击数次后, 出现左图的情况, 之后我们单击

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Fortran Algol Pascal Modula-2 BCPL C Simula SmallTalk C++ Ada Java C# C Fortran 5.1 message A B 5.2 1 class Vehicle subclass Car object mycar public class Vehicle extends Object{ public int WheelNum

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B 25 9 2008 9 M ICROEL ECTRON ICS & COMPU TER Vol. 25 No. 9 September 2008 J ava 1,2, 1,2, 1,2 (1, 330022 ; 2, 330022) :,. Apla - Java,,.. : PAR ;Apla - Java ; ;CMP ; : TP311 : A : 1000-7180 (2008) 09-0018

More information

ASP.NET实现下拉框二级联动组件

ASP.NET实现下拉框二级联动组件 ASP.NET 实现下拉框二级联动组件 namespace WebApplicationDlh using System.Drawing; using System.Web; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using Db; / / Area 的摘要说明 /

More information

IoC容器和Dependency Injection模式.doc

IoC容器和Dependency Injection模式.doc IoC Dependency Injection /Martin Fowler / Java Inversion of Control IoC Dependency Injection Service Locator Java J2EE open source J2EE J2EE web PicoContainer Spring Java Java OO.NET service component

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-055Big5 Title : Sun Certified Programmer for the Java 2 Platform.SE 5.0 Version : Demo 1 / 22 1. 11. public static void parse(string str)

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 章.1 Android UI 基本概念 用户界面 (User Interface,UI) 是用户与设备之间进行信息交流的直接媒介, 是决定用户体验最重要的部分 相比于早期的计算机的主要交互界面 批处理界面和命令行界面, 现在更为流行的是更简单直接的用户图形界面 (Graphical User Interface, GUI) GUI 简单易用, 受众面广, 直接推动了个人计算机的发展 目前, 主流大众的操作系统都采用了

More information

基于ECO的UML模型驱动的数据库应用开发1.doc

基于ECO的UML模型驱动的数据库应用开发1.doc ECO UML () Object RDBMS Mapping.Net Framework Java C# RAD DataSetOleDbConnection DataGrod RAD Client/Server RAD RAD DataReader["Spell"].ToString() AObj.XXX bug sql UML OR Mapping RAD Lazy load round trip

More information

2 从列表选择在添加黑名单界面中, 点击 从联系人中添加 按钮时, 会跳转到联系人列表界面, 点击其中的任意一个联系人, 此时该联系人的电话号码和姓名会显示在添加黑名单界面的编辑框中, 点击下方的 添加 按钮, 此时会将该号码添加到黑名单中, 并在主界面中展示, 如图 3-2 所示 图 3-2 从联

2 从列表选择在添加黑名单界面中, 点击 从联系人中添加 按钮时, 会跳转到联系人列表界面, 点击其中的任意一个联系人, 此时该联系人的电话号码和姓名会显示在添加黑名单界面的编辑框中, 点击下方的 添加 按钮, 此时会将该号码添加到黑名单中, 并在主界面中展示, 如图 3-2 所示 图 3-2 从联 第 3 章通讯卫士模块 了解通讯卫士模块功能 掌握 SQLite 数据库的使用 掌握如何使用广播接收者拦截电话和短信在日常生活中, 使用手机时经常会被某些电话或短信骚扰, 例如推销保险 中奖信息等, 为此, 我们开发了通讯卫士模块, 该模块可以将骚扰电话或垃圾短信添加到黑名单中, 并对其进行拦截 本章将针对通讯卫士模块进行详细讲解 3.1 模块概述 3.1.1 功能介绍 通讯卫士模块的主要功能是进行黑名单拦截,

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 70-536Chinese(C++) Title : TS:MS.NET Framework 2.0-Application Develop Foundation Version : DEMO 1 / 10 1. Exception A. Data B. Message C.

More information

Chapter 1: Introduction

Chapter 1: Introduction 目錄 目錄 IX Part 1 擁抱 Android 單元 01 Android 造時勢或是時勢造 Android... 2 Android 從何而來... 3 Android 的功能 應用和商機... 5 先睹為快 - Android 手機和平板電腦模擬器... 7 單元 02 安裝 Android 程式開發工具... 10 不同作業系統的開發工具版本...10 安裝 Android 程式開發工具的步驟...12

More information

untitled

untitled 1 行 行 行 行.NET 行 行 類 來 行 行 Thread 類 行 System.Threading 來 類 Thread 類 (1) public Thread(ThreadStart start ); Name 行 IsAlive 行 行狀 Start 行 行 Suspend 行 Resume 行 行 Thread 類 (2) Sleep 行 CurrentThread 行 ThreadStart

More information

移动平台期末展示

移动平台期末展示 移动平台开发作品展示 周芳张文杰谢殊凡 作品简介 一 作品简介 Ø 应用名称 : 一笔画 Ø 功能 : 随机生成一笔画图案 玩家可以在屏幕上描绘图案, 程序会判定绘制成功或者失败 Ø 设计目的 : 制作一个休闲益智类的小游戏 设计思路 二 设计思路 Ø 1. 自动生成随机的一笔画 奇顶点 : 指数为奇数的顶点 偶顶点 : 指数为偶数的顶点 一笔画图形的必要条件是 : 奇顶点数目是 0 或者 2 Ø

More information

JBuilder Weblogic

JBuilder Weblogic JUnit ( bliu76@yeah.net) < >6 JUnit Java Erich Gamma Kent Beck JUnit JUnit 1 JUnit 1.1 JUnit JUnit java XUnit JUnit 1.2 JUnit JUnit Erich Gamma Kent Beck Erich Gamma Kent Beck XP Extreme Programming CRC

More information

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63>

<4D6963726F736F667420576F7264202D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63> 基 于 Android 平 台 的 电 子 拍 卖 系 统 摘 要 本 电 子 拍 卖 系 统 其 实 就 是 一 个 电 子 商 务 平 台, 只 要 将 该 系 统 部 署 到 互 联 网 上, 客 户 都 可 以 在 该 系 统 上 发 布 想 出 售 的 商 品, 也 可 以 对 拍 卖 中 的 商 品 参 与 竞 价 整 个 过 程 无 须 人 工 干 预, 由 系 统 自 动 完 成 本

More information

untitled

untitled 1 LinkButton LinkButton 連 Button Text Visible Click HyperLink HyperLink 來 立 連 Text ImageUrl ( ) NavigateUrl 連 Target 連 _blank _parent frameset _search _self 連 _top 例 sample2-a1 易 連 private void Page_Load(object

More information

Lecture01_Android介绍

Lecture01_Android介绍 移动平台应用软件开发 Android 介绍 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一七年秋北京 Android是什么 Android不仅仅是一个操作系统 它更是一个完整的软件框 架 Android基于Linux内核 2005年Google公司收购了Android公司 Google公司选择使用Apache许可证开放Android源码

More information

Microsoft Word - Broker.doc

Microsoft Word - Broker.doc Broker 模式 采用 broker 模式对分布式计算进行简单模拟 系统在一个进程内模拟分布式环境, 因此不涉及网络编程和进程间通信,Broker 通过本地函数调用的方式实现 request 和 response 的转发 采用 broker 模式对分布式计算进行简单的模拟, 要求如下 : 设计四个 server, 一个 server 接收两个整数, 求和并返回结果, 一个 server 接收两个整数,

More information

第 6 章 BroadcastReceiver( 广播接收者 ) 学习目标 掌握广播接收者的创建, 以及如何自定义广播 ; 掌握有序广播和无序广播的使用, 能够对有序广播进行拦截 在 Android 系统中, 广播是一种运用在应用程序之间传递消息的机制, 例如电池电量低时会发送一条提示广播 要过滤并

第 6 章 BroadcastReceiver( 广播接收者 ) 学习目标 掌握广播接收者的创建, 以及如何自定义广播 ; 掌握有序广播和无序广播的使用, 能够对有序广播进行拦截 在 Android 系统中, 广播是一种运用在应用程序之间传递消息的机制, 例如电池电量低时会发送一条提示广播 要过滤并 第 6 章 BroadcastReceiver( 广播接收者 ) 学习目标 掌握广播接收者的创建, 以及如何自定义广播 ; 掌握有序广播和无序广播的使用, 能够对有序广播进行拦截 在 Android 系统中, 广播是一种运用在应用程序之间传递消息的机制, 例如电池电量低时会发送一条提示广播 要过滤并接收广播中的消息就需要使用 BroadcastReceiver( 广播接收者 ), 广播接收者是 Android

More information

untitled

untitled How to using M-Power Report API M-Power Report API 力 了 M-Power Report -- Java (Library) M-Power Report API 行 Java M-Power Report M-Power Report API ( 30 ) PDF/HTML/CSV/XLS JPEG/PNG/SVG 料 料 OutputStream

More information

「西醫基層總額支付委員會《第28次委員會議紀錄

「西醫基層總額支付委員會《第28次委員會議紀錄 西 醫 基 層 總 額 支 付 委 員 會 101 年 第 2 次 委 員 會 議 紀 錄 時 間 :101 年 5 月 23 日 下 午 2 時 地 點 : 中 央 健 康 保 險 局 18 樓 會 議 室 ( 台 北 市 信 義 路 3 段 140 號 18 樓 ) 主 席 : 黃 召 集 人 三 桂 出 席 委 員 : 王 委 員 正 坤 王 委 員 錦 基 古 委 員 博 仁 王 正 坤 王

More information

0511-Android程式之GPS應用_專題週記4

0511-Android程式之GPS應用_專題週記4 逢甲大學通訊工程學系專題研究 Android 程式之 GPS 應用 專題週記 0511 學生姓名 陳彥儒 D0035131 廖元譽 D0077791 指導老師 楊豐瑞老師繳交日期 2014.05.11 1 匯入 GoogleMap 1.1 取得授權步驟 目前進度 取得 Google 授權鑰匙 實作程式尚未成功 1.1.1 建立個人的 keystore 1.1.2 由個人的 keystore 查詢 SHA1

More information

《大话设计模式》第一章

《大话设计模式》第一章 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜

More information

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6 www.brainysoft.net 1.JasperReport ireport...4 1.1 JasperReport...4 1.2 ireport...4 2....4 2.1 JDK...4 2.1.1 JDK...4 2.1.2 JDK...5 2.1.3 JDK...5 2.2 ant...6 2.2.1 ant...6 2.2.2 ant...6 2.3 JasperReport...7

More information

CHAPTER 1

CHAPTER 1 CHAPTER 1 1-1 System Development Life Cycle; SDLC SDLC Waterfall Model Shelly 1995 1. Preliminary Investigation 2. System Analysis 3. System Design 4. System Development 5. System Implementation and Evaluation

More information

38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民 1 08414159 惠 鴻 眼 鏡 行 桃 園 市 中 壢 區 福 德 里 中 華 路 一 段 186 號 1 樓 30,000 獨 資 宋 耀 鴻 105/04/27 府 經 登 字 第 1059003866 號 2 17891110 承 元 冷 氣 空 調 工 程 行 桃 園 市 桃 園 區 中 德 里 國 際 路 1 段 98 巷 50 號 2 樓 之 4 200,000 獨 資 詹 安 平

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 友乾营 报表的 SQL 植入风险 规避风险 : 让你的报表变的安全起来 SQL 植入的概念 恶意的 SQL 归根结底 : 执行了不该允许执行的 SQL 命令, 达到非法的目的 常见案例 骗过登录验证非法获取账号信息篡改 删除数据 为什么存在 SQL 植入 植入原理 如何攻击 特殊的输入参数 未处理特殊字符 -- # 数据库配置不合理 植入原理 : 案例 1, 特殊输入参数 union or 猜表名

More information