AndroidAnnotations注解框架

来源:互联网 发布:广州淘宝拍照的地方 编辑:程序博客网 时间:2024/06/12 01:51

https://github.com/excilys/androidannotations

 

使用之前的代码为:

Java代码  收藏代码
  1. public class BookmarksToClipboardActivity extends Activity {  
  2.      
  3.   BookmarkAdapter adapter;  
  4.    
  5.   ListView bookmarkList;  
  6.    
  7.   EditText search;  
  8.    
  9.   BookmarkApplication application;  
  10.    
  11.   Animation fadeIn;  
  12.    
  13.   ClipboardManager clipboardManager;  
  14.    
  15.   @Override  
  16.   protected void onCreate(Bundle savedInstanceState) {  
  17.     super.onCreate(savedInstanceState);  
  18.    
  19.     requestWindowFeature(Window.FEATURE_NO_TITLE);  
  20.     getWindow().setFlags(FLAG_FULLSCREEN, FLAG_FULLSCREEN);  
  21.    
  22.     setContentView(R.layout.bookmarks);  
  23.    
  24.     bookmarkList = (ListView) findViewById(R.id.bookmarkList);  
  25.     search = (EditText) findViewById(R.id.search);  
  26.     application = (BookmarkApplication) getApplication();  
  27.     fadeIn = AnimationUtils.loadAnimation(this, anim.fade_in);  
  28.     clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);  
  29.    
  30.     View updateBookmarksButton1 = findViewById(R.id.updateBookmarksButton1);  
  31.     updateBookmarksButton1.setOnClickListener(new OnClickListener() {  
  32.    
  33.       @Override  
  34.       public void onClick(View v) {  
  35.         updateBookmarksClicked();  
  36.       }  
  37.     });  
  38.    
  39.     View updateBookmarksButton2 = findViewById(R.id.updateBookmarksButton2);  
  40.     updateBookmarksButton2.setOnClickListener(new OnClickListener() {  
  41.    
  42.       @Override  
  43.       public void onClick(View v) {  
  44.         updateBookmarksClicked();  
  45.       }  
  46.     });  
  47.    
  48.     bookmarkList.setOnItemClickListener(new OnItemClickListener() {  
  49.    
  50.       @Override  
  51.       public void onItemClick(AdapterView<?> p, View v, int pos, long id) {  
  52.         Bookmark selectedBookmark = (Bookmark) p.getAdapter().getItem(pos);  
  53.         bookmarkListItemClicked(selectedBookmark);  
  54.       }  
  55.     });  
  56.    
  57.     initBookmarkList();  
  58.   }  
  59.    
  60.   void initBookmarkList() {  
  61.     adapter = new BookmarkAdapter(this);  
  62.     bookmarkList.setAdapter(adapter);  
  63.   }  
  64.    
  65.   void updateBookmarksClicked() {  
  66.     UpdateBookmarksTask task = new UpdateBookmarksTask();  
  67.    
  68.     task.execute(search.getText().toString(), application.getUserId());  
  69.   }  
  70.      
  71.   private static final String BOOKMARK_URL = //  
  72.   "http://www.bookmarks.com/bookmarks/{userId}?search={search}";  
  73.      
  74.      
  75.   class UpdateBookmarksTask extends AsyncTask<String, Void, Bookmarks> {  
  76.    
  77.     @Override  
  78.     protected Bookmarks doInBackground(String... params) {  
  79.       String searchString = params[0];  
  80.       String userId = params[1];  
  81.    
  82.       RestTemplate client = new RestTemplate();  
  83.       HashMap<String, Object> args = new HashMap<String, Object>();  
  84.       args.put("search", searchString);  
  85.       args.put("userId", userId);  
  86.       HttpHeaders httpHeaders = new HttpHeaders();  
  87.       HttpEntity<Bookmarks> request = new HttpEntity<Bookmarks>(httpHeaders);  
  88.       ResponseEntity<Bookmarks> response = client.exchange( //  
  89.           BOOKMARK_URL, HttpMethod.GET, request, Bookmarks.class, args);  
  90.       Bookmarks bookmarks = response.getBody();  
  91.    
  92.       return bookmarks;  
  93.     }  
  94.    
  95.     @Override  
  96.     protected void onPostExecute(Bookmarks result) {  
  97.       adapter.updateBookmarks(result);  
  98.       bookmarkList.startAnimation(fadeIn);  
  99.     }  
  100.        
  101.   }  
  102.    
  103.   void bookmarkListItemClicked(Bookmark selectedBookmark) {  
  104.     clipboardManager.setText(selectedBookmark.getUrl());  
  105.   }  
  106.    
  107. }  

 

使用之后的代码为:

Java代码  收藏代码
  1. @NoTitle  
  2. @Fullscreen  
  3. @EActivity(R.layout.bookmarks)  
  4. public class BookmarksToClipboardActivity extends Activity {  
  5.      
  6.   BookmarkAdapter adapter;  
  7.      
  8.   @ViewById  
  9.   ListView bookmarkList;  
  10.    
  11.   @ViewById  
  12.   EditText search;  
  13.      
  14.   @App  
  15.   BookmarkApplication application;  
  16.      
  17.   @RestService  
  18.   BookmarkClient restClient;  
  19.    
  20.   @AnimationRes  
  21.   Animation fadeIn;  
  22.      
  23.   @SystemService  
  24.   ClipboardManager clipboardManager;  
  25.    
  26.   @AfterViews  
  27.   void initBookmarkList() {  
  28.     adapter = new BookmarkAdapter(this);  
  29.     bookmarkList.setAdapter(adapter);  
  30.   }  
  31.      
  32.   @Click({R.id.updateBookmarksButton1, R.id.updateBookmarksButton2})  
  33.   void updateBookmarksClicked() {  
  34.     searchAsync(search.getText().toString(), application.getUserId());  
  35.   }  
  36.      
  37.   @Background  
  38.   void searchAsync(String searchString, String userId) {  
  39.     Bookmarks bookmarks = restClient.getBookmarks(searchString, userId);  
  40.     updateBookmarks(bookmarks);  
  41.   }  
  42.    
  43.   @UiThread  
  44.   void updateBookmarks(Bookmarks bookmarks) {  
  45.     adapter.updateBookmarks(bookmarks);  
  46.     bookmarkList.startAnimation(fadeIn);  
  47.   }  
  48.      
  49.   @ItemClick  
  50.   void bookmarkListItemClicked(Bookmark selectedBookmark) {  
  51.     clipboardManager.setText(selectedBookmark.getUrl());  
  52.   }  
  53.    
  54. }  

 

Java代码  收藏代码
  1. @Rest("http://www.bookmarks.com")  
  2. public interface BookmarkClient {  
  3.        
  4.     @Get("/bookmarks/{userId}?search={search}")  
  5.     Bookmarks getBookmarks(String search, String userId);  
  6.    
  7. }  

0 0
原创粉丝点击