自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android Touch開發(fā)搜索應用

移動開發(fā) Android
在本文中,將設計一個允許用戶輸入檢索關鍵詞,對twitter上的內(nèi)容進行檢索的小應用,其中調(diào)用的是Twitter的公開API RESTful接口,對返回的JSON格式進行解析處理。

一 設計相關界面

我們的界面很簡單,只是一個文本輸入框,一個“Search”的檢索按鈕,以及展示檢索結(jié)果的內(nèi)容區(qū)域。下面是相關代碼:

java代碼:

  1. Ext.setup({   
  2. onReady: function() {   
  3. var topToolbar = new Ext.Toolbar({   
  4. dock : 'top',   
  5. ui: 'dark',   
  6. title: 'Sencha Twitter Search'   
  7. });   
  8. var tpl = new Ext.XTemplate(   
  9. '<div id="tweet_container">',   
  10. '<tpl for=".">',   
  11. '<div class="tweet_data">',   
  12. '<div class="tweet_avatar">',   
  13. '<img width="30" height="30" src="{profile_image_url}"/>',   
  14. '</div>',   
  15. '<div class="tweet_content">',   
  16. '<a class="user" href="http://twitter.com/{from_user}">{from_user}</a> ',   
  17. '{text}',   
  18. '</div>',   
  19. '<div class="clear"></div>',   
  20. '</div>',   
  21. '</tpl>',   
  22. '</div>'   
  23. );   
  24. var resultPanel = new Ext.Panel({   
  25. layout: 'fit',   
  26. style: 'padding-bottom: 10px;',   
  27. tpl: tpl   
  28. });   
  29. var searchPanel = new Ext.Panel({   
  30. padding: 10,   
  31. layout: {   
  32. type: 'hbox',   
  33. align: 'stretch'   
  34. },   
  35. items: [{   
  36. flex: 4,   
  37. xtype: 'textfield',   
  38. style: 'margin-right: 10px;',   
  39. id: 'textquery'   
  40. },{   
  41. flex: 2,   
  42. xtype: 'button',   
  43. text: 'Search',   
  44. handler: function() {   
  45. var query = Ext.getCmp("textquery").getValue();   
  46. Ext.Ajax.request({   
  47. url: 'index.php?act=search&q='+query,   
  48. success: function(e) {   
  49. var obj = Ext.util.JSON.decode(e.responseText);   
  50. var msg = obj.results;   
  51. var html = tpl.apply(msg);   
  52. resultPanel.update(html);   
  53. }   
  54. });   
  55. }   
  56. }]   
  57. });   
  58. var myPanel = new Ext.Panel({   
  59. dockedItems: [topToolbar],   
  60. items: [searchPanel, resultPanel],   
  61. scroll: 'vertical',   
  62. style: 'background: #DDEEF6;',   
  63. fullscreen : true   
  64. });   
  65. }   
  66. });  

 在這里,首先設置了topToolbar標題欄,標題欄的內(nèi)容為Sencha Twitter Search。接著使用EXT的Ext.XTemplate設計了一個模版,模版中的內(nèi)容是按照twitter中的格式設計的,即發(fā)微博人的相片、用戶名以及所發(fā)的言論。而resultPanel中是顯示結(jié)果的面板,searchPanel則是輸入檢索條件的面板,其中請注意handler方法,使用query變量獲得了用戶的輸入檢索詞,之后使用get的方法,使用ajax的方式發(fā)送到index.php去處理(本例子中把EXTJS代碼和PHP代碼寫在同一個PHP文件中了,當然也可以分開來編寫,那么的話就使用POST方法了),同時,在success的回調(diào)函數(shù)中,對AJAX調(diào)用返回的結(jié)果進行處理,

其中,使用var obj = Ext.util.JSON.decode(e.responseText),對檢索的結(jié)果JSON格式進行解碼,將返回的JSON格式字符串轉(zhuǎn)變?yōu)镴SON格式的對象,并且用tpl.apply(msg),將解析后的結(jié)果應用到之前的模版tpl中,***要記得使用resultPanel.update(html);更新一下該區(qū)域。

二  PHP獲得twitter內(nèi)容的代碼

在同一個index.php文件中,通過使用get的方法,發(fā)送查詢請求關鍵字到twitter公開的API進行查詢,代碼如下:

java代碼:

  1. if (isset($_GET["act"]) && $_GET["act"] == "search") {   
  2. $url = 'http://search.twitter.com/search.json?q='.$_GET["q"];   
  3. $content = file_get_contents($url);   
  4. $array = json_decode($content);   
  5. $data = array();   
  6. foreach ($array->results as $var => $value) {   
  7. $pattern = '/\b(https?:\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$])/i';   
  8. preg_match_all($pattern, $value->text, $regs);   
  9. $loop = count($regs[0]);   
  10. for ($i = 0; $i < $loop; $i++) {   
  11. $value->text = str_replace($regs[0][$i], '<a class="outlink" href="'.$regs[0][$i].'">'.$regs[0][$i].'</a>', $value->text);   
  12. }   
  13. $data[] = array(   
  14. "profile_image_url" => $value->profile_image_url,   
  15. "from_user" => $value->from_user,   
  16. "text" => $value->text   
  17. );   
  18. }   
  19. $out = array(   
  20. "success" => true,   
  21. "results" => $data   
  22. );   
  23. echo json_encode($out);   
  24. exit;   
  25. }  

【編輯推薦】

Android環(huán)境變量的設置

Android系統(tǒng)重要文件類型詳解

Android開發(fā)之旅:Android架構

Android應用程序開發(fā)環(huán)境的搭建

責任編輯:zhaolei 來源: 網(wǎng)絡轉(zhuǎn)載
相關推薦

2011-09-02 16:42:51

Sencha ToucWeb應用

2012-01-10 14:10:26

Sencha Touc

2011-07-26 10:21:25

Sencha Touc

2011-07-26 10:44:15

Sencha Touc

2011-12-22 20:36:41

Kindle Fire

2011-09-05 10:49:14

Sencha ToucjQuery MobiHTML5

2012-08-06 09:52:03

Android搜索功能

2011-09-02 15:18:49

Sencha Touc

2011-07-25 16:21:22

Sencha touc

2011-09-01 10:09:04

2012-07-30 09:41:04

Android搜索功能

2013-12-08 21:33:31

谷歌移動搜索應用內(nèi)搜索

2011-06-15 16:11:51

UIKitCocoa TouchiOS

2012-02-27 10:06:27

AdobePhotoshop

2013-04-24 11:15:56

Android開發(fā)Touch事件傳遞機制

2013-05-21 09:54:39

Web前端

2011-09-05 11:23:26

EclipseSencha Touc框架

2011-12-20 15:59:28

2017-12-26 13:10:38

技術Android應用

2011-09-05 10:27:02

Sencha Touc手機應用Android
點贊
收藏

51CTO技術棧公眾號