- 浏览: 168929 次
- 性别:
- 来自: 北京
最新评论
-
温婉柳叶眉:
可以的,测试了。
使用观察者模式完美实现android程序退出 -
crackpot:
真的挺方便的啊
使用框架编写Android程序 -
lehehe:
定位的话,现在用接口不很方便吗?http://www.haos ...
android手机基站定位 -
u013061116:
连你自己都调试不出来的玩意
Android网络收音机项目 -
xuminliang:
能否给广告滚动条添加事件监听呢,如何添加呢,我试着用一般的给控 ...
Android 广告滚动条实现
AndroidAnnotations这个开源项目为android程序的编写提供了一个新的思路,他们自己称之为框架,我觉得很像struts2的注解方式,下面是这个项目在github上面的地址
https://github.com/excilys/androidannotations
下面的代码是一个例子
这个项目的好处是使用到了IOC模式,代码量小而且简洁,使程序员更多的关注于业务逻辑而不是页面,而且@Backgroud这个标签下开启的线程在线程池中管理。
类似的项目还有Android Binding,RoboGuice等,有兴趣可以看一下这个文章
CLEAN CODE IN ANDROID APPLICATIONS一个Spring gay写得,很不错哦~
http://blog.springsource.com/2011/08/26/clean-code-with-android/
我记得github里面好像有demo
https://github.com/excilys/androidannotations
下面的代码是一个例子
package com.googlecode.androidannotations.helloworldeclipse; import java.util.Date; import java.util.concurrent.TimeUnit; import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.googlecode.androidannotations.annotations.Background; import com.googlecode.androidannotations.annotations.Click; import com.googlecode.androidannotations.annotations.EActivity; import com.googlecode.androidannotations.annotations.LongClick; import com.googlecode.androidannotations.annotations.SystemService; import com.googlecode.androidannotations.annotations.Touch; import com.googlecode.androidannotations.annotations.Transactional; import com.googlecode.androidannotations.annotations.UiThread; import com.googlecode.androidannotations.annotations.ViewById; import com.googlecode.androidannotations.annotations.res.BooleanRes; import com.googlecode.androidannotations.annotations.res.ColorRes; import com.googlecode.androidannotations.annotations.res.StringRes; @EActivity(R.layout.my_activity) //布局文件在这里声明,不用在setContentView public class MyActivity extends Activity { @ViewById //控件这样标注,由于是IOC模式,因此不需要自己实例化 EditText myEditText; @ViewById(R.id.myTextView) //提供id来生成控件,如果不指定ID,默认以控件名进行查找,如上面的myEditText TextView textView; @StringRes(R.string.hello) //资源 String helloFormat; @ColorRes int androidColor; @BooleanRes boolean someBoolean; @SystemService NotificationManager notificationManager; @SystemService WindowManager windowManager; /** * AndroidAnnotations gracefully handles support for onBackPressed, whether * you use ECLAIR (2.0), or pre ECLAIR android version. */ public void onBackPressed() { Toast.makeText(this, "Back key pressed!", Toast.LENGTH_SHORT).show(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // windowManager should not be null windowManager.getDefaultDisplay(); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); } @Click //事件控制,可以以按钮的id作为方法名,同时支持的事件还有onLongClick,onTextChange等 void myButtonClicked() { String name = myEditText.getText().toString(); setProgressBarIndeterminateVisibility(true); someBackgroundWork(name, 5); } @Background //开启新线程后台运行,注意不要引用UI控件,而且返回值类型一定是void void someBackgroundWork(String name, long timeToDoSomeLongComputation) { try { TimeUnit.SECONDS.sleep(timeToDoSomeLongComputation); } catch (InterruptedException e) { } String message = String.format(helloFormat, name); updateUi(message, androidColor); showNotificationsDelayed(); } @UiThread //UI线程 void updateUi(String message, int color) { setProgressBarIndeterminateVisibility(false); textView.setText(message); textView.setTextColor(color); } @UiThread(delay=2000) //可以设置延时时间,以毫秒为单位 void showNotificationsDelayed() { Notification notification = new Notification(R.drawable.icon, "Hello !", 0); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(), 0); notification.setLatestEventInfo(getApplicationContext(), "My notification", "Hello World!", contentIntent); notificationManager.notify(1, notification); } @LongClick void startExtraActivity() { Intent intent = new Intent(this, ActivityWithExtra_.class); intent.putExtra(ActivityWithExtra.MY_DATE_EXTRA, new Date()); intent.putExtra(ActivityWithExtra.MY_STRING_EXTRA, "hello !"); intent.putExtra(ActivityWithExtra.MY_INT_EXTRA, 42); startActivity(intent); } @Click void startListActivity(View v) { startActivity(new Intent(this, MyListActivity_.class)); } @Touch void myTextView(MotionEvent event) { Log.d("MyActivity", "myTextView was touched!"); } @Transactional int transactionalMethod(SQLiteDatabase db, int someParam) { return 42; } }
这个项目的好处是使用到了IOC模式,代码量小而且简洁,使程序员更多的关注于业务逻辑而不是页面,而且@Backgroud这个标签下开启的线程在线程池中管理。
类似的项目还有Android Binding,RoboGuice等,有兴趣可以看一下这个文章
CLEAN CODE IN ANDROID APPLICATIONS一个Spring gay写得,很不错哦~
http://blog.springsource.com/2011/08/26/clean-code-with-android/
评论
4 楼
crackpot
2014-10-22
真的挺方便的啊
3 楼
wangbin12315789
2013-08-02
这个例子我试了试 结果会报错 提示windowManager.getDefaultDisplay(); 这句空指针,而注释掉屏幕就黑了 什么也都不显示了。请问您遇到过这个情况吗?
或者有什么好的解决办法吗?
或者有什么好的解决办法吗?
2 楼
malong26
2012-12-20
q601180252 写道
能把代码发出来不
我记得github里面好像有demo
1 楼
q601180252
2012-12-19
能把代码发出来不
发表评论
-
当显示Popupwindow时,音量键无效
2013-07-31 20:16 1625Activity设置了setVolumeControlStre ... -
Service与Activity通信
2013-07-27 09:42 778There are three obvious ways to ... -
SQLite错误总结
2013-07-24 14:58 11701. android.database.sqlite.SQLi ... -
程序退出代码片段
2013-05-03 11:26 1111Intent intent = new Intent(In ... -
使用观察者模式完美实现android程序退出
2013-05-02 15:04 16268android的app程序退出有几种方式:activi ... -
ADT21抢鲜使用
2012-12-07 15:00 2961伴着Android4.2的发布,楼主我也更新到了API17,a ... -
PopupWindow的onScrollChanged系统bug
2012-11-29 09:22 2721最近遇到一个问题,在项目中使用actionbar做标题栏,ac ... -
租吧――我的app发布历程
2012-11-23 10:41 4724从这个项目开始计 ... -
android手机基站定位
2012-10-31 09:47 7460这段时间在做定位功能 ... -
Android Parcel初识
2012-07-13 21:06 1231android中新的对象序列化Parcel,基于IPC协议(进 ... -
Android 广告滚动条实现
2012-07-12 15:21 11849各个商城类客户端都有滚动广告,比如京东,QQ,1号电,当当网等 ... -
actionbar使用
2012-06-28 20:08 3603ActionBar作为一个优秀的开源控件,被google所看好 ... -
模仿iphone弹出式短信查看
2012-06-18 12:25 2090感觉使用抽屉查看短信麻烦,于是自己写了一个模仿iphone查看 ... -
Android中3种方法实现back键动作
2012-05-24 17:57 24488方法一:重写onBackPressed方法 @Overri ... -
ActivityGroup中使用切换动画
2012-05-23 18:10 4468在stack上面发现的方法,分享给大家,功能是在activit ... -
Android的AsyncTask类中使用自定义handler
2012-05-10 08:53 2728熟知的AsyncTask就是Thread+handler实现, ... -
当rawQuery遇上模糊查询
2012-04-18 18:04 4833遇到一个好玩的事情,使用rawQuery方法模糊查询,代码这样 ... -
Android网络收音机项目
2012-03-19 18:34 14880最近喜欢听广播,但是搜索了一下,苦于网上没有andro ... -
viewpager循环拖动
2011-12-31 23:18 13236最近在研究viewpager,准备做循环拖动即A->B- ...
相关推荐
《Android应用框架原理与程序设计》是一本深入探讨Android应用程序开发的专业书籍,主要针对的是Android应用框架的原理和设计方法。在Android系统中,应用框架是开发者构建应用程序的基础,它提供了一系列API和组件...
### Android系统结构与SDK使用详解 #### 一、Android系统介绍 ...总之,Android系统结构和SDK使用涉及到了从底层系统架构到应用程序开发的各个环节。开发者需要深入理解这些概念和技术,才能构建高质量的应用程序。
Android驱动程序的编写通常涉及Linux内核编程,因为Android基于Linux内核。本篇文章将深入探讨Android驱动程序的编写案例,帮助开发者理解驱动开发的基本流程和关键点。 首先,我们要明白驱动程序的分类。Android...
3. 网络请求:Android小程序通常需要与服务器进行数据交换,使用HttpURLConnection或者第三方库如OkHttp进行网络请求,学习如何封装网络请求并处理响应,是网络编程的基础。 4. 用户交互:通过监听触摸事件、使用...
项目krismileMvvm-master很可能是使用Kotlin编写的,因为Kotlin是目前Android开发的首选语言,且与MVVM架构搭配得非常默契。通过这个项目,开发者可以学习如何组织MVVM架构的应用程序,理解各个组件的作用,以及如何...
4. **Java编程在Android中的应用**:教程通过详细的代码示例,教授初学者如何使用Java语言编写Android应用的逻辑。这涉及到如何处理用户输入,调用系统服务,以及实现数据存储等基本功能。 5. **解读预设的Java代码...
Mina(MINA,全称Java Minimal Asynchronous Network Library)是一个高效的、基于NIO(Non-blocking I/O)的网络应用程序框架,主要用于简化网络编程,尤其是TCP和UDP协议的开发。在Android平台上,由于系统资源...
在Android应用开发中,快速构建高效且用户友好的应用程序至关重要。"Android快速开发框架"就是为了满足这一需求而设计的,它包含了一系列预先封装好的组件和工具,帮助开发者节省时间,提高开发效率。以下是对该框架...
本篇主要介绍如何进行Android程序测试,我们将通过创建一个新的测试工程来对已有工程进行测试。首先,我们需要理解Android测试的基本概念和架构。 Android测试主要分为以下几个层次: 1. **单元测试(Unit Tests)...
通过阅读《Android应用框架原理与程序设计(第三版)》,开发者不仅可以掌握Android应用开发的基本技能,还能深入了解其背后的运行机制,从而编写出高效、稳定、易维护的应用。无论你是初学者还是有经验的开发者,这...
《Android的应用程序框架与Eclipse开发应用程序入门》一书,为初学者提供了全面的指导,尤其适合在校大学生和想要涉足Android应用开发的程序员。本文将深入解析Android应用程序的基础框架,并以HelloActivity为例...
这个压缩包文件"android比较全的一个框架,快速开发必备"提供了一个全面的解决方案,它包含了用于简化这些任务的各种组件,帮助开发者高效地构建Android应用程序。 首先,让我们关注AndBase。这是一个Android基础...
《Android程序设计 第2版》是一本深入探讨Android应用程序开发的专业书籍,对于想要掌握Android开发技术的程序员来说,是不可或缺的参考资料。这本书详尽地介绍了Android平台的基础知识、开发环境的搭建、应用生命...
在Android程序设计中,我们还会接触到异步编程,例如使用AsyncTask、IntentService或者现代的LiveData和Coroutines处理耗时操作,防止阻塞主线程。 除此之外,Android提供了丰富的API来访问设备硬件,如相机、GPS、...
通过深入学习《Android应用框架原理与程序设计》这本书,开发者可以全面了解Android系统的运作机制,从而编写出更加高效、稳定、安全的Android应用程序。结合实践,这些知识将为你的Android开发事业奠定坚实基础。