欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

ArrayAdapter和SimpleCursorAdapter

系統 2312 0

    使用ArrayAdapter定制 To-Do List

    ?

    這個例子將擴展 To-Do List 工程,以一個 ToDoItem 對象來儲存每一個項目,包含每個項目的創建日期。

    ?

    你將擴展 ArrayAdapter 類來綁定一組 ToDoItem 對象到 ListView 上,并定制用于顯示每一個 ListView 項目的 layout

    ?

    1. 返回到 To-Do List 工程。創建一個新的 ToDoItem 類來保存任務和任務的創建日期。重寫 toString 方法來返回一個項目數據的概要。

    ?

Java代碼?
  1. package ?com.paad.todolist;??
  2. import ?java.text.SimpleDateFormat;??
  3. import ?java.util.Date;??
  4. ???
  5. public ? class ?ToDoItem?{??
  6. String?task;??
  7. Date?created;??
  8. ???
  9. public ?String?getTask()?{??
  10. return ?task;??
  11. }??
  12. ???
  13. public ?Date?getCreated()?{??
  14. return ?created;??
  15. }??
  16. ???
  17. public ?ToDoItem(String?_task)?{??
  18. this (_task,? new ?Date(java.lang.System.currentTimeMillis()));??
  19. }??
  20. ???
  21. public ?ToDoItem(String?_task,?Date?_created)?{??
  22. task?=?_task;??
  23. created?=?_created;??
  24. }??
  25. ???
  26. @Override ??
  27. public ?String?toString()?{??
  28. SimpleDateFormat?sdf?=? new ?SimpleDateFormat(“dd/MM/yy”);??
  29. String?dateString?=?sdf.format(created);??
  30. return ?“(“?+?dateString?+?“)?“?+?task;??
  31. }??
  32. }??
?

?

2. 打開 ToDoList Activity ,修改 ArrayList ArrayAdapter 變量的類型,儲存 ToDoItem 對象而不是字符串。然后,你將修改 onCreate 方法來更新相應的變量初始化。你還需要更新 onKeyListener 處理函數來支持 ToDoItem 對象。

?

Java代碼?
  1. private ?ArrayList<ToDoItem>?todoItems;??
  2. private ?ListView?myListView;??
  3. private ?EditText?myEditText;??
  4. private ?ArrayAdapter<ToDoItem>?aa;??
  5. ???
  6. @Override ??
  7. public ? void ?onCreate(Bundle?icicle)?{??
  8. super .onCreate(icicle);??
  9. ???
  10. //?Inflate?your?view ??
  11. setContentView(R.layout.main);??
  12. ???
  13. //?Get?references?to?UI?widgets ??
  14. myListView?=?(ListView)findViewById(R.id.myListView);??
  15. myEditText?=?(EditText)findViewById(R.id.myEditText);??
  16. todoItems?=? new ?ArrayList<ToDoItem>();??
  17. int ?resID?=?R.layout.todolist_item;??
  18. aa?=? new ?ArrayAdapter<ToDoItem>( this ,?resID,?todoItems);??
  19. myListView.setAdapter(aa);??
  20. myEditText.setOnKeyListener( new ?OnKeyListener()?{??
  21. public ? boolean ?onKey(View?v,? int ?keyCode,?KeyEvent?event)??
  22. {??
  23. if ?(event.getAction()?==?KeyEvent.ACTION_DOWN)??
  24. if ?(keyCode?==?KeyEvent.KEYCODE_DPAD_CENTER)??
  25. {??
  26. ToDoItem?newItem;??
  27. newItem?=? new ?ToDoItem(myEditText.getText().toString());??
  28. todoItems.add( 0 ,?newItem);??
  29. myEditText.setText(“”);??
  30. aa.notifyDataSetChanged();??
  31. cancelAdd();??
  32. return ? true ;??
  33. }??
  34. return ? false ;??
  35. }??
  36. });??
  37. registerForContextMenu(myListView);??
  38. }??
?

?

3. 如果你運行 Activity ,它將顯示每個 to-do 項目,如圖 5-3 所示。

?

ArrayAdapter和SimpleCursorAdapter

5-3

?

4. 現在,你可以創建一個自定義的 layout 來顯示每一個 to-do 項目。修改在第 4 章中創建的自定義 layout ,包含另外一個 TextView ,它將用于顯示每個 to-do 項目的創建日期。

?

Xml代碼?
  1. <? xml ? version =”1.0”? encoding =”utf-8” ?> ??
  2. < RelativeLayout ? xmlns:android =”http://schemas.android.com/apk/res/android”??
  3. android:layout_width =”fill_parent”??
  4. android:layout_height =”fill_parent”??
  5. android:background =”@color/notepad_paper” > ??
  6. < TextView ??
  7. android:id =”@+id/rowDate”??
  8. android:layout_width =”wrap_content”??
  9. android:layout_height =”fill_parent”??
  10. android:padding =”10dp”??
  11. android:scrollbars =”vertical”??
  12. android:fadingEdge =”vertical”??
  13. android:textColor =”@color/notepad_text”??
  14. android:layout_alignParentRight =”true”??
  15. /> ??
  16. < TextView ??
  17. android:id =”@+id/row”??
  18. android:layout_width =”fill_parent”??
  19. android:layout_height =”fill_parent”??
  20. android:padding =”10dp”??
  21. android:scrollbars =”vertical”??
  22. android:fadingEdge =”vertical”??
  23. android:textColor =”@color/notepad_text”??
  24. android:layout_alignParentLeft =”@+id/rowDate”??
  25. /> ??
  26. </ RelativeLayout > ??
?

?

5. 創建一個新的類( ToDoItemAdapter ),使用指定的 ToDoItem 變量來擴展一個 ArrayAdapter 。重寫 getView 方法來將 ToDoItem 對象中的 task date 屬性指定給第 4 步創建的 layout 中的 View

Java代碼?
  1. ???
  2. import ?java.text.SimpleDateFormat;??
  3. import ?android.content.Context;??
  4. import ?java.util.*;??
  5. import ?android.view.*;??
  6. import ?android.widget.*;??
  7. ???
  8. public ? class ?ToDoItemAdapter? extends ?ArrayAdapter<ToDoItem>?{??
  9. int ?resource;??
  10. ???
  11. public ?ToDoItemAdapter(Context?_context, int ?_resource,?List<ToDoItem>?_items)?{??
  12. super (_context,?_resource,?_items);??
  13. resource?=?_resource;??
  14. }??
  15. ???
  16. @Override ??
  17. public ?View?getView( int ?position,?View?convertView,?ViewGroup?parent)??
  18. {??
  19. LinearLayout?todoView;??
  20. ToDoItem?item?=?getItem(position);??
  21. String?taskString?=?item.getTask();??
  22. Date?createdDate?=?item.getCreated();??
  23. SimpleDateFormat?sdf?=? new ?SimpleDateFormat(“dd/MM/yy”);??
  24. String?dateString?=?sdf.format(createdDate);??
  25. if ?(convertView?==? null )??
  26. {??
  27. todoView?=? new ?LinearLayout(getContext());??
  28. String?inflater?=?Context.LAYOUT_INFLATER_SERVICE;??
  29. LayoutInflater?vi;??
  30. vi?=?(LayoutInflater)getContext().getSystemService(inflater);??
  31. vi.inflate(resource,?todoView,? true );??
  32. }??
  33. else ??
  34. {??
  35. todoView?=?(LinearLayout)?convertView;??
  36. }??
  37. TextView?dateView?=?(TextView)todoView.findViewById(R.id.rowDate);??
  38. TextView?taskView?=?(TextView)todoView.findViewById(R.id.row);??
  39. dateView.setText(dateString);??
  40. taskView.setText(taskString);??
  41. return ?todoView;??
  42. }??
  43. }??
?

?

6. 最后,用 ToDoItemAdapter 替換 ArrayAdapter 的定義。

?

private ToDoItemAdapter aa;

?

onCreate 中,使用 new ToDoItemAdapter 來替換 ArrayAdapter<String> 的實例化。

?

aa = new ToDoItemAdapter(this, resID, todoItems);

?

7. 如果你運行 Activity ,它看起來如圖 5-4 的截圖。

?

ArrayAdapter和SimpleCursorAdapter

5-4

?

使用SimpleCursorAdapter

?

SimpleCursorAdapter 允許你綁定一個游標的列到 ListView 上,并使用自定義的 layout 顯示每個項目。

?

SimpleCursorAdapter 的創建,需要傳入當前的上下文、一個 layout 資源,一個游標和兩個數組:一個包含使用的列的名字,另一個(相同大小)數組包含 View 中的資源 ID ,用于顯示相應列的數據值。

?

下面的框架代碼顯示了如何構造一個 SimpleCursorAdapter 來顯示聯系人信息:

?

Java代碼?
  1. String?uriString?=?“content: //contacts/people/”; ??
  2. Cursor?myCursor?=?managedQuery(Uri.parse(uriString),? null ,? null ,? null ,? null );??
  3. String[]?fromColumns?=? new ?String[]?{People.NUMBER,?People.NAME};??
  4. int []?toLayoutIDs?=? new ? int []?{?R.id.nameTextView,?R.id.numberTextView};??
  5. SimpleCursorAdapter?myAdapter;??
  6. myAdapter?=? new ?SimpleCursorAdapter(
分享到:
評論
jandroid
  • 瀏覽: 647346 次
  • 性別: Icon_minigender_1
  • 來自: 北京
最新評論

ArrayAdapter和SimpleCursorAdapter


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产激情一区二区三区四区 | 国产成人综合日韩精品婷婷九月 | 国产精品区免费视频 | 欧美综合久久 | 国产成在线观看免费视频 | 男人添女人下面免费网站 | 99视频精品 | 亚洲精品国产电影 | 午夜视频十八嗯嗯啊免费 | 性色在线| 欧美最新一区二区三区四区 | 婷婷综合 | 久久经典视频 | 欧美日韩亚洲视频 | 91视频导航| 色情女教师3波多野结衣 | 狠狠色丁香婷婷 | 日日操夜夜透 | 久久一er精这里有精品 | 久久在线播放 | 观看毛片| 99久久久国产精品露出 | 久久久精品视频免费看 | 日日摸夜夜摸狠狠摸日日碰夜夜做 | 小明天天看| 欧美乱视频 | 第一福利在线观看 | 久久久精品视频免费看 | 成人午夜免费视频毛片 | 91短视频在线视频 | 欧美狠狠操 | 欧美日韩大尺码免费专区 | 亚洲精品一区二区三区在线观看 | 亚洲不卡在线 | 性少妇videosexfreexx | 韩国久久久久无码国产精品 | 国产精品99爱免费视频 | 91精品在线看 | 国产午夜精品一区二区三区 | 嫩草91| 色婷婷六月丁香在线观看 |