Android中一个单行与多行并存的listview


Android中一个单行与多行并存的listview,可以用来参考:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"    
  3.         android:layout_width="fill_parent"    
  4.         android:layout_height="fill_parent"  
  5.         android:windowSoftInputMode="adjustUnspecified|stateHidden"  
  6.         >    
  7. <LinearLayout  
  8.   android:layout_width="fill_parent"  
  9.   android:layout_height="fill_parent"  
  10.   android:orientation="vertical"  
  11.   >  
  12. <ListView  
  13.     android:layout_width="fill_parent"  
  14.     android:layout_height="380sp"  
  15.     android:id="@+id/CarAddlistView"      
  16.     android:paddingBottom="2sp"  
  17. ></ListView>     
  18. </LinearLayout>  
  19. </ScrollView>  

java代码:

  1. import java.text.DateFormat;  
  2. import java.text.SimpleDateFormat;  
  3. import java.util.ArrayList;  
  4. import java.util.Calendar;  
  5. import java.util.Date;  
  6. import java.util.HashMap;  
  7. import java.util.List;  
  8. import java.util.Map;  
  9. import android.app.Activity;  
  10. import android.app.AlertDialog;  
  11. import android.app.DatePickerDialog;  
  12. import android.app.Dialog;  
  13. import android.app.ProgressDialog;  
  14. import android.content.Context;  
  15. import android.content.DialogInterface;  
  16. import android.content.Intent;  
  17. import android.os.Bundle;  
  18. import android.view.LayoutInflater;  
  19. import android.view.View;  
  20. import android.view.ViewGroup;  
  21. import android.view.WindowManager;  
  22. import android.view.View.OnClickListener;  
  23. import android.widget.AdapterView;  
  24. import android.widget.BaseAdapter;  
  25. import android.widget.DatePicker;  
  26. import android.widget.ImageButton;  
  27. import android.widget.LinearLayout;  
  28. import android.widget.ListView;  
  29. import android.widget.TextView;  
  30. import android.widget.Toast;  
  31. public class multiListview extends Activity{  
  32.       
  33.     private ListView listview;  
  34.     private List<Map<String, Object>> DataList;  
  35.     MyAdapter adapter;  
  36.     private Runnable viewOrders;  
  37.       
  38.     private int mYear;      
  39.     private int mMonth;      
  40.     private int mDay;  
  41.       
  42.     @Override  
  43.     public void onCreate(Bundle savedInstanceState) {  
  44.         super.onCreate(savedInstanceState);  
  45.         //禁止休眠   
  46.         getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,   
  47.                 WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);    
  48.         setContentView(R.layout.listview);  
  49.           
  50.    
  51.           
  52.         listview = (ListView)findViewById(R.id.listView);  
  53.         listview.setAdapter(adapter);  
  54.         listview.setOnItemClickListener(new ListView.OnItemClickListener(){  
  55.             @Override  
  56.             public void onItemClick(AdapterView<?> parent, View view, int position,  
  57.                     long arg3) {  
  58.                 setSelectedValues(position);  
  59.             }             
  60.         });   
  61.      }  
  62.        
  63.         
  64.           
  65.       
  66.       
  67.      //选择listview事件,处理相关逻辑   
  68.      private void setSelectedValues(int position)  
  69.      {  
  70.          Intent _Intent;  
  71.          Bundle bundle;  
  72.         AreaOption area;  
  73.         switch(position)  
  74.         {  
  75.             case 0://   
  76.                 Toast.makeText(multiListview.this"请正确选择您的日期1!",   
  77.                         Toast.LENGTH_SHORT).show();  
  78.                 showDialog(DATE1_DIALOG_ID);  
  79.                 break;  
  80.             case 1://   
  81.                 Toast.makeText(multiListview.this"请正确选择您的日期2!",   
  82.                         Toast.LENGTH_SHORT).show();  
  83.                 showDialog(DATE2_DIALOG_ID);    
  84.                 break;  
  85.             }  
  86.      }  
  87.      @Override  
  88.      protected Dialog onCreateDialog(int id) {      
  89.             switch (id) {      
  90.             case DATE1_DIALOG_ID:          
  91.             return new DatePickerDialog(this,                      
  92.                     mDateSetListener,                      
  93.                     mYear, mMonth, mDay);          
  94.             case DATE2_DIALOG_ID:  
  95.                 return new DatePickerDialog(this,                      
  96.                         mDateSetListener1,                      
  97.                         mYear, mMonth, mDay);    
  98.             }             
  99.         return null;  
  100.         }  
  101.       private DatePickerDialog.OnDateSetListener mDateSetListener =              
  102.             new DatePickerDialog.OnDateSetListener() {                  
  103.             public void onDateSet(DatePicker view, int year,                                         
  104.                     int monthOfYear, int dayOfMonth) {                      
  105.                 mYear = year;                      
  106.                 mMonth = monthOfYear;                      
  107.                 mDay = dayOfMonth;            
  108.                   
  109.                Map<String, Object> map = new HashMap<String, Object>();  
  110.                 map.put("left1""日期1:");  
  111.                 map.put("center1", getDate());  
  112.                 map.put("star1""*");  
  113.                 map.put("arrow1"">");            
  114.                   
  115.                DataList.set(0, map);  
  116.                adapter.notifyDataSetChanged();                 
  117.                 }              
  118.         };  
  119.           
  120.           private DatePickerDialog.OnDateSetListener mDateSetListener1 =              
  121.                 new DatePickerDialog.OnDateSetListener() {                  
  122.                 public void onDateSet(DatePicker view, int year,                                         
  123.                         int monthOfYear, int dayOfMonth) {                      
  124.                     mYear = year;                      
  125.                     mMonth = monthOfYear;                      
  126.                     mDay = dayOfMonth;            
  127.                       
  128.                    Map<String, Object> map = new HashMap<String, Object>();  
  129.                     map.put("left1""日期2:");  
  130.                     map.put("center1", getDate());  
  131.                     map.put("star1""*");  
  132.                     map.put("arrow1"">");            
  133.                       
  134.                    DataList.set(1, map);  
  135.                    adapter.notifyDataSetChanged();                 
  136.                     }              
  137.             };     
  138.        
  139.       private List<Map<String, Object>> getData() {  
  140.             List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();  
  141.             //0   
  142.             Map<String, Object> map = new HashMap<String, Object>();  
  143.             map.put("left1""日期1:");  
  144.             map.put("center1", getDate());  
  145.             map.put("star1""*");  
  146.             map.put("arrow1"">");  
  147.             list.add(map);  
  148.             //1   
  149.             map = new HashMap<String, Object>();  
  150.             map.put("left1""日期2:");  
  151.             map.put("center1", getDate());  
  152.             map.put("star1""*");  
  153.             map.put("arrow1"">");  
  154.             list.add(map);        
  155.             //2   
  156.             map = new HashMap<String, Object>();  
  157.             map.put("left1""地点1:");  
  158.             map.put("center1""请选择");  
  159.             map.put("star1""*");  
  160.             map.put("arrow1"">");  
  161.             list.add(map);  
  162.             //3   
  163.             map = new HashMap<String, Object>();  
  164.             map.put("left1""地点2:");  
  165.             map.put("center1""请选择");  
  166.             map.put("star1""*");  
  167.             map.put("arrow1"">");  
  168.             list.add(map);  
  169.             //4   
  170.             map = new HashMap<String, Object>();  
  171.             map.put("left1""体重:");  
  172.             map.put("center1""请选择");  
  173.             map.put("star1""");  
  174.             map.put("arrow1"">");  
  175.             list.add(map);  
  176.             //5   
  177.             map = new HashMap<String, Object>();  
  178.             map.put("left1""工作:");  
  179.             map.put("center1""请选择");  
  180.             map.put("star1""*");  
  181.               
  182.             map.put("left2""移动电话1:");  
  183.             map.put("center2""请选择");  
  184.             map.put("star2""*");  
  185.             map.put("arrow2"">");  
  186.               
  187.             map.put("left3""移动电话2:");  
  188.             map.put("center3""请选择");  
  189.             map.put("star3""");  
  190.             list.add(map);  
  191.             //6   
  192.             map = new HashMap<String, Object>();  
  193.             map.put("left1""其他:");  
  194.             map.put("center1""请选择");  
  195.             map.put("arrow1"">");  
  196.             list.add(map);  
  197.               
  198.             return list;  
  199.         }  
  200.         
  201.         //获得日期   
  202.         private String getDate()  
  203.         {  
  204.             StringBuilder Date = new StringBuilder()                                        
  205.             .append(mYear).append("-")                      
  206.             .append(mMonth + 1).append("-")                      
  207.             .append(mDay).append(" ");   
  208.               
  209.             return Date.toString();  
  210.         }  
  211.           
  212.         public final class ViewHolder{  
  213.             public TextView left1;  
  214.             public TextView left2;  
  215.             public TextView left3;  
  216.             public TextView center1;  
  217.             public TextView center2;  
  218.             public TextView center3;  
  219.             public TextView star1;  
  220.             public TextView star2;  
  221.             public TextView star3;  
  222.             public TextView arrow1;  
  223.             public TextView arrow2;  
  224.             public TextView arrow3;  
  225.             public LinearLayout line1;  
  226.             public LinearLayout line2;  
  227.             public LinearLayout line3;  
  228.         }  
  229.           
  230.         public class MyAdapter extends BaseAdapter{  
  231.             private LayoutInflater mInflater;  
  232.                   
  233.             public MyAdapter(Context context){  
  234.                 this.mInflater = LayoutInflater.from(context);  
  235.             }  
  236.             @Override  
  237.             public int getCount() {  
  238.                 // TODO Auto-generated method stub   
  239.                 return DataList.size();  
  240.             }  
  241.             @Override  
  242.             public Object getItem(int arg0) {  
  243.                 // TODO Auto-generated method stub   
  244.                 return null;  
  245.             }  
  246.             @Override  
  247.             public long getItemId(int arg0) {  
  248.                 // TODO Auto-generated method stub   
  249.                 return 0;  
  250.             }  
  251.             @Override  
  252.             public View getView(int position, View convertView, ViewGroup parent) {  
  253.                   
  254.                 ViewHolder holder = null;  
  255.                 if (convertView == null) {  
  256.                       
  257.                     holder=new ViewHolder();    
  258.                       
  259.                     convertView = mInflater.inflate(R.layout.sourceaddlistview, null);  
  260.                     holder.left1 = (TextView)convertView.findViewById(R.id.left1);  
  261.                     holder.left2 = (TextView)convertView.findViewById(R.id.left2);  
  262.                     holder.left3 = (TextView)convertView.findViewById(R.id.left3);  
  263.                     holder.center1 = (TextView)convertView.findViewById(R.id.center1);  
  264.                     holder.center2 = (TextView)convertView.findViewById(R.id.center2);  
  265.                     holder.center3 = (TextView)convertView.findViewById(R.id.center3);  
  266.                     holder.star1 = (TextView)convertView.findViewById(R.id.star1);  
  267.                     holder.star2 = (TextView)convertView.findViewById(R.id.star2);  
  268.                     holder.star3 = (TextView)convertView.findViewById(R.id.star3);  
  269.                     holder.arrow1 = (TextView)convertView.findViewById(R.id.arrow1);  
  270.                     holder.arrow2 = (TextView)convertView.findViewById(R.id.arrow2);  
  271.                     holder.arrow3 = (TextView)convertView.findViewById(R.id.arrow3);  
  272.                     holder.line1=(LinearLayout)convertView.findViewById(R.id.line1);  
  273.                     holder.line2=(LinearLayout)convertView.findViewById(R.id.line2);  
  274.                     holder.line3=(LinearLayout)convertView.findViewById(R.id.line3);  
  275.                     convertView.setTag(holder);  
  276.                       
  277.                 }else {  
  278.                       
  279.                     holder = (ViewHolder)convertView.getTag();  
  280.                 }  
  281.                   
  282.                 holder.line2.setVisibility(convertView.GONE);  
  283.                 holder.line3.setVisibility(convertView.GONE);  
  284.                   
  285.                 holder.left1.setText((String)DataList.get(position).get("left1"));  
  286.                 holder.center1.setText((String)DataList.get(position).get("center1"));  
  287.                 holder.star1.setText((String)DataList.get(position).get("star1"));  
  288.                 holder.arrow1.setText((String)DataList.get(position).get("arrow1"));  
  289.                   
  290.                 if(position==5)  
  291.                 {  
  292.                     holder.left2.setText((String)DataList.get(position).get("left2"));  
  293.                     holder.center2.setText((String)DataList.get(position).get("center2"));  
  294.                     holder.star2.setText((String)DataList.get(position).get("star2"));  
  295.                     holder.arrow2.setText((String)DataList.get(position).get("arrow2"));  
  296.                       
  297.                     holder.left3.setText((String)DataList.get(position).get("left3"));  
  298.                     holder.center3.setText((String)DataList.get(position).get("center3"));  
  299.                     holder.star3.setText((String)DataList.get(position).get("star3"));    
  300.                     holder.arrow3.setText((String)DataList.get(position).get("arrow3"));  
  301.                       
  302.                     holder.line2.setVisibility(convertView.VISIBLE);  
  303.                     holder.line3.setVisibility(convertView.VISIBLE);  
  304.                 }  
  305.                 return convertView;  
  306.             }                         
  307.         }  

相关内容