Android ListView複雜使用方式簡單理解

來源:互聯網
上載者:User

Android手機作業系統中,有許多應用比較複雜,對於初學者來說還需要在實踐中去加深對此的理解。在Android ListView的使用較為複雜一點,也就是配置其Adapter,Adapter有幾種,有ArrayAdapter,SimpleAdapter等,首先要產生一個ListView(當然可以使用ListActivity,此Activity整合了ListView)然後用Adapter來設定ListView的顯示資料及布局方式,然後再來響應OnItemClick 事件,或者在ListActivity改寫onListItemClick 響應事件函數。看如下代碼示範了使用ListActivity:

  1. import java.util.ArrayList;  
  2. import java.util.HashMap;  
  3. import java.util.Map;  
  4. import android.app.ListActivity;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.widget.ListView;  
  8. import android.widget.SimpleAdapter; 
  1. public class Test extends ListActivity {  
  2. @Override  
  3. protected void onListItemClick(ListView l, View v, int position, long id) {  
  4. // TODO Auto-generated method stub  
  5. super.onListItemClick(l, v, position, id);  
  6. this.setTitle(this.mModelData.get(position).get("type").toString());  
  7. }  
  8. SimpleAdapter adapter = null;  
  9. private ArrayList<Map<String, Object>> mModelData = null;  
  10. /** Called when the activity is first created. */  
  11. @Override  
  12. public void onCreate(Bundle savedInstanceState) {  
  13. super.onCreate(savedInstanceState);  
  14. initModelData();  
  15. adapter = new SimpleAdapter
    (this, mModelData, android.R.layout.two_line_list_item, 
    new String[]{"name"}, new int[]{android.R.id.text1});  
  16. this.setListAdapter(adapter);  
  17. //setContentView(R.layout.main);  
  18. }  
  19. public void initModelData()  
  20. {  
  21. mModelData = new ArrayList<Map<String, Object>>();  
  22. Map<String, Object> item = new HashMap<String,Object>();  
  23. item.put("name", "Linux");item.put("type", "OS");  
  24. mModelData.add(item);  
  25. Map<String, Object> item2 = new HashMap<String,Object>();  
  26. item2.put("name", "Android");item2.put("type", "Platform");  
  27. mModelData.add(item2);  
  28. Map<String, Object> item3 = new HashMap<String,Object>();  
  29. item3.put("name", "Tomato");item3.put("type", "Fruit");  
  30. mModelData.add(item3);  
  31. }  
  32. } 

下面代碼顯示了,使用Android ListView + Activity:

  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.view.View;  
  4. import android.widget.AdapterView;  
  5. import android.widget.ArrayAdapter;  
  6. import android.widget.ListView;  
  7. import android.widget.AdapterView.OnItemClickListener;  
  8. public class TestStringList extends Activity implements 
    OnItemClickListener {  
  9. @Override  
  10. public void onItemClick(AdapterView

  1. > arg0,   
  2. View arg1, int arg2, long arg3) {    
  3.  
  4. this.setTitle("You Click Item:" + String.valueOf(arg2));     
  5. }    
  6. private ListView mListView = null;    
  7. @Override    
  8. protected void onCreate(Bundle savedInstanceState) {    
  9. // TODO Auto-generated method stub    
  10. super.onCreate(savedInstanceState);    
  11. mListView = new ListView(this);    
  12. mListView.setOnItemClickListener(this);    
  13. ArrayAdapter<String> adapter = new ArrayAdapter<String> 
  14. (this,android.R.layout.simple_list_item_checked,    
  15. new String[]{"ItemA", "ItemB", "ItemC"});    
  16. mListView.setAdapter(adapter);    
  17. this.setContentView(mListView);    
  18. }    
  19. }   

Android ListView的相關應用就為大家介紹到這裡。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.