- 浏览: 1501964 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (419)
- XMPP (19)
- Android (180)
- Java (59)
- Network (4)
- HTML5 (13)
- Eclipse (9)
- SCM (23)
- C/C++ (4)
- UML (4)
- Libjingle (15)
- Tools&Softwares (29)
- Linphone (5)
- Linux&UNIX (6)
- Windows (18)
- Google (10)
- MISC (3)
- SIP (6)
- SQLite (5)
- Security (4)
- Opensource (29)
- Online (2)
- 文章 (3)
- MemoryLeak (10)
- Decompile (5)
- Ruby (1)
- Image (1)
- Bat (4)
- TTS&ASR (28)
- Multimedia (1)
- iOS (20)
- Asciiflow - ASCII Flow Diagram Tool.htm (1)
- Networking (1)
- DLNA&UPnP (2)
- Chrome (2)
- CI (1)
- SmartHome (0)
- CloudComputing (1)
- NodeJS (3)
- MachineLearning (2)
最新评论
-
bzhao:
点赞123!
Windows的adb shell中使用vi不乱码方法及AdbPutty -
wahahachuang8:
我觉得这种东西自己开发太麻烦了,就别自己捣鼓了,找个第三方,方 ...
HTML5 WebSocket 技术介绍 -
obehavior:
view.setOnTouchListenerview是什么
[转]android 一直在最前面的浮动窗口效果 -
wutenghua:
[转]android 一直在最前面的浮动窗口效果 -
zee3.lin:
Sorry~~
When I build "call ...
Step by Step about How to Build libjingle 0.4
https://github.com/excilys/androidannotations
使用之前的代码为:
public class BookmarksToClipboardActivity extends Activity { BookmarkAdapter adapter; ListView bookmarkList; EditText search; BookmarkApplication application; Animation fadeIn; ClipboardManager clipboardManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(FLAG_FULLSCREEN, FLAG_FULLSCREEN); setContentView(R.layout.bookmarks); bookmarkList = (ListView) findViewById(R.id.bookmarkList); search = (EditText) findViewById(R.id.search); application = (BookmarkApplication) getApplication(); fadeIn = AnimationUtils.loadAnimation(this, anim.fade_in); clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); View updateBookmarksButton1 = findViewById(R.id.updateBookmarksButton1); updateBookmarksButton1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { updateBookmarksClicked(); } }); View updateBookmarksButton2 = findViewById(R.id.updateBookmarksButton2); updateBookmarksButton2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { updateBookmarksClicked(); } }); bookmarkList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> p, View v, int pos, long id) { Bookmark selectedBookmark = (Bookmark) p.getAdapter().getItem(pos); bookmarkListItemClicked(selectedBookmark); } }); initBookmarkList(); } void initBookmarkList() { adapter = new BookmarkAdapter(this); bookmarkList.setAdapter(adapter); } void updateBookmarksClicked() { UpdateBookmarksTask task = new UpdateBookmarksTask(); task.execute(search.getText().toString(), application.getUserId()); } private static final String BOOKMARK_URL = // "http://www.bookmarks.com/bookmarks/{userId}?search={search}"; class UpdateBookmarksTask extends AsyncTask<String, Void, Bookmarks> { @Override protected Bookmarks doInBackground(String... params) { String searchString = params[0]; String userId = params[1]; RestTemplate client = new RestTemplate(); HashMap<String, Object> args = new HashMap<String, Object>(); args.put("search", searchString); args.put("userId", userId); HttpHeaders httpHeaders = new HttpHeaders(); HttpEntity<Bookmarks> request = new HttpEntity<Bookmarks>(httpHeaders); ResponseEntity<Bookmarks> response = client.exchange( // BOOKMARK_URL, HttpMethod.GET, request, Bookmarks.class, args); Bookmarks bookmarks = response.getBody(); return bookmarks; } @Override protected void onPostExecute(Bookmarks result) { adapter.updateBookmarks(result); bookmarkList.startAnimation(fadeIn); } } void bookmarkListItemClicked(Bookmark selectedBookmark) { clipboardManager.setText(selectedBookmark.getUrl()); } }
使用之后的代码为:
@NoTitle @Fullscreen @EActivity(R.layout.bookmarks) public class BookmarksToClipboardActivity extends Activity { BookmarkAdapter adapter; @ViewById ListView bookmarkList; @ViewById EditText search; @App BookmarkApplication application; @RestService BookmarkClient restClient; @AnimationRes Animation fadeIn; @SystemService ClipboardManager clipboardManager; @AfterViews void initBookmarkList() { adapter = new BookmarkAdapter(this); bookmarkList.setAdapter(adapter); } @Click({R.id.updateBookmarksButton1, R.id.updateBookmarksButton2}) void updateBookmarksClicked() { searchAsync(search.getText().toString(), application.getUserId()); } @Background void searchAsync(String searchString, String userId) { Bookmarks bookmarks = restClient.getBookmarks(searchString, userId); updateBookmarks(bookmarks); } @UiThread void updateBookmarks(Bookmarks bookmarks) { adapter.updateBookmarks(bookmarks); bookmarkList.startAnimation(fadeIn); } @ItemClick void bookmarkListItemClicked(Bookmark selectedBookmark) { clipboardManager.setText(selectedBookmark.getUrl()); } }
@Rest("http://www.bookmarks.com") public interface BookmarkClient { @Get("/bookmarks/{userId}?search={search}") Bookmarks getBookmarks(String search, String userId); }
发表评论
-
JAAS authentication in Tomcat example
2018-11-19 20:32 593... -
druid 数据库密码加密
2015-03-12 17:43 1388cmd命令:1、切换的druid-0.2.9.jar包所在目 ... -
[Android] 为Android安装BusyBox —— 完整的bash shell
2013-12-27 10:19 1482http://www.cnblogs.com/xiaowen ... -
Windows的adb shell中使用vi不乱码方法及AdbPutty
2013-12-27 10:17 7546http://www.veryhuo.com/down/ht ... -
AppMobi推出新XDK,可创建测试PhoneGap项目
2012-09-03 13:39 2629AppMobi今天发布了一个新的工具PhoneGap Mobi ... -
Sencha
2012-09-03 12:59 1182http://www.sencha.com/ Se ... -
jQuery Mobile学习
2012-09-01 12:33 1683使用Jquery Mobile设计Android通讯录 ... -
BackBone
2012-09-01 12:34 1256Backbone.js 是一种重量级javascript M ... -
jQTouch
2012-08-30 15:57 981A Zepto/jQuery plugin for mobil ... -
SwiFTP
2012-08-30 15:43 1298SwiFTP is a FTP server that run ... -
kWS
2012-08-30 15:41 1195kWS is a lightweight and fast W ... -
jQuery Mobile
2012-08-30 15:07 1021http://jquerymobile.com/ -
PhoneGap
2012-08-30 15:07 1040http://phonegap.com/ -
Android Button background image pressed/highlighted and disabled states without
2012-08-06 12:49 1673http://shikii.net/blog/android- ... -
[AndriodTips]Image, saved to sdcard, doesn't appear in Android's Gallery app
2012-08-04 16:15 1154http://stackoverflow.com/questi ... -
Voice detection for Android
2012-07-23 11:39 2341Here it is, my fist JAVA applic ... -
[AndroidTip]local reference table overflow (max=512)的错误解决
2012-07-22 22:56 6036JNI层coding经常会遇到ReferenceTable o ... -
[AndroidTip]EditText如何初始状态不获得焦点?
2012-07-22 15:35 1222最简单的办法是在EditText前面放置一个看不到的Linea ... -
[AndroidTip]android textview滚动条
2012-07-21 14:29 1293本来是想做一个显示文字信息的,当文字很多时View的高度不能超 ... -
Google公布Android 4.1完整功能
2012-07-16 09:48 3178http://www.android.com/about/je ...
相关推荐
AndroidAnnotations 是一个开源的 Java 注解库,它极大地简化了 Android 应用程序的开发工作。通过在代码中使用特定的注解,开发者可以快速实现视图注入、事件监听、依赖注入等功能,从而提高开发效率并减少出错的...
综上所述,AndroidAnnotations通过注解大大简化了Android开发,而其测试代码则确保了这些便利性不会牺牲代码质量。理解并熟练运用AndroidAnnotations测试技巧,将有助于提高开发效率和应用的可靠性。
AndroidAnnotations 是一个开源的、注解驱动的框架,它旨在简化 Android 应用的开发过程。通过使用注解,开发者可以减少样板代码,将更多的精力集中在业务逻辑上。这个框架通过自动化处理常见的开发任务,如视图绑定...
《AndroidAnnotations:提升Android开发效率的秘密武器》 在Android应用开发的世界里,效率与便捷性是开发者们追求的重要目标。AndroidAnnotations(简称AA)正是这样一款开源库,它以其独特的注解方式,极大地简化...
Android Annotions 是一个专门为 Android 平台设计的开源库,它极大地简化了 Android 应用程序的开发工作。这个库的主要目的是通过注解(Annotations)来减少代码量,提高代码的可读性和可维护性。Annotions 的核心...
Android Annotations框架是一个强大的工具,它通过使用Java注解(Annotations)来简化Android应用的开发,提高了编码效率。本文将深入探讨Android Annotations的使用方法和优势,帮助开发者更好地理解和运用这一框架...
通过注解驱动的编程,Android-SwissKnife大大减少了重复的模板代码,提高了开发效率。例如,不再需要为每个点击事件创建单独的OnClickListener。 6. **兼容性**: 由于其设计灵感来源于ButterKnife和...
这个项目充分利用了AndroidAnnotations注解框架,大大简化了Android应用的开发过程,提高了代码的可读性和可维护性。 AndroidAnnotations是Java的一个库,它提供了基于注解的代码增强功能,能够自动处理一些繁琐的...
这些框架大大提高了Android开发的效率,提供了丰富的功能,并降低了开发难度。选择合适的框架能够使项目更加稳定、健壮,并有助于提升用户体验。开发者应根据项目需求和团队技术栈来选择最合适的框架组合。
通过这个实例,我们可以看到Android Annotation如何简化Android应用的编码工作,使代码更加整洁,逻辑更清晰。结合Gradle的便利性,Android Annotation成为了解决Android开发中重复工作和复杂性的有效手段。对于任何...