您的位置:首页 > 移动开发 > Android开发

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

2011-06-15 22:25 295 查看
可以用来参考:



<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"
        android:windowSoftInputMode="adjustUnspecified|stateHidden"
        >  
<LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical"
  >
<ListView
	android:layout_width="fill_parent"
	android:layout_height="380sp"
	android:id="@+id/CarAddlistView"	
	android:paddingBottom="2sp"
></ListView>	
</LinearLayout>
</ScrollView>




java代码:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.DatePicker;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class multiListview extends Activity{
	
	private ListView listview;
	private List<Map<String, Object>> DataList;
	MyAdapter adapter;
    private Runnable viewOrders;
	
    private int mYear;    
    private int mMonth;    
    private int mDay;
    
	@Override
    public void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
		//禁止休眠
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, 
				WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);  
    	setContentView(R.layout.listview);
    	
 
		
    	listview = (ListView)findViewById(R.id.listView);
    	listview.setAdapter(adapter);
    	listview.setOnItemClickListener(new ListView.OnItemClickListener(){
			@Override
			public void onItemClick(AdapterView<?> parent, View view, int position,
					long arg3) {
				setSelectedValues(position);
			}    		
    	});	
	 }
	 
	  
	    
	
	
	 //选择listview事件,处理相关逻辑
	 private void setSelectedValues(int position)
	 {
		 Intent _Intent;
		 Bundle bundle;
		AreaOption area;
		switch(position)
		{
			case 0://
				Toast.makeText(multiListview.this, "请正确选择您的日期1!", 
						Toast.LENGTH_SHORT).show();
				showDialog(DATE1_DIALOG_ID);
				break;
			case 1://
				Toast.makeText(multiListview.this, "请正确选择您的日期2!", 
						Toast.LENGTH_SHORT).show();
				showDialog(DATE2_DIALOG_ID);  
				break;
			}
	 }
	 @Override
	 protected Dialog onCreateDialog(int id) {    
	    	switch (id) {    
	    	case DATE1_DIALOG_ID:        
	    	return new DatePickerDialog(this,                    
	    			mDateSetListener,                    
	    			mYear, mMonth, mDay);        
	    	case DATE2_DIALOG_ID:
		    	return new DatePickerDialog(this,                    
		    			mDateSetListener1,                    
		    			mYear, mMonth, mDay);  
	    	}    		
	    return null;
	    }
	  private DatePickerDialog.OnDateSetListener mDateSetListener =            
	    	new DatePickerDialog.OnDateSetListener() {                
	    	public void onDateSet(DatePicker view, int year,                                       
	    			int monthOfYear, int dayOfMonth) {                    
	    		mYear = year;                    
	    		mMonth = monthOfYear;                    
	    		mDay = dayOfMonth;     		
	    		
	           Map<String, Object> map = new HashMap<String, Object>();
		   		map.put("left1", "日期1:");
		   		map.put("center1", getDate());
				map.put("star1", "*");
				map.put("arrow1", ">");   		
		   		
	           DataList.set(0, map);
	           adapter.notifyDataSetChanged();               
	    		}            
	    };
	    
		  private DatePickerDialog.OnDateSetListener mDateSetListener1 =            
		    	new DatePickerDialog.OnDateSetListener() {                
		    	public void onDateSet(DatePicker view, int year,                                       
		    			int monthOfYear, int dayOfMonth) {                    
		    		mYear = year;                    
		    		mMonth = monthOfYear;                    
		    		mDay = dayOfMonth;     		
		    		
		           Map<String, Object> map = new HashMap<String, Object>();
			   		map.put("left1", "日期2:");
			   		map.put("center1", getDate());
					map.put("star1", "*");
					map.put("arrow1", ">");   		
			   		
		           DataList.set(1, map);
		           adapter.notifyDataSetChanged();               
		    		}            
		    };   
	 
	  private List<Map<String, Object>> getData() {
			List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
			//0
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("left1", "日期1:");
			map.put("center1", getDate());
			map.put("star1", "*");
			map.put("arrow1", ">");
			list.add(map);
			//1
			map = new HashMap<String, Object>();
			map.put("left1", "日期2:");
			map.put("center1", getDate());
			map.put("star1", "*");
			map.put("arrow1", ">");
			list.add(map);		
			//2
			map = new HashMap<String, Object>();
			map.put("left1", "地点1:");
			map.put("center1", "请选择");
			map.put("star1", "*");
			map.put("arrow1", ">");
			list.add(map);
			//3
			map = new HashMap<String, Object>();
			map.put("left1", "地点2:");
			map.put("center1", "请选择");
			map.put("star1", "*");
			map.put("arrow1", ">");
			list.add(map);
			//4
			map = new HashMap<String, Object>();
			map.put("left1", "体重:");
			map.put("center1", "请选择");
			map.put("star1", "");
			map.put("arrow1", ">");
			list.add(map);
			//5
			map = new HashMap<String, Object>();
			map.put("left1", "工作:");
			map.put("center1", "请选择");
			map.put("star1", "*");
			
			map.put("left2", "移动电话1:");
			map.put("center2", "请选择");
			map.put("star2", "*");
			map.put("arrow2", ">");
			
			map.put("left3", "移动电话2:");
			map.put("center3", "请选择");
			map.put("star3", "");
			list.add(map);
			//6
			map = new HashMap<String, Object>();
			map.put("left1", "其他:");
			map.put("center1", "请选择");
			map.put("arrow1", ">");
			list.add(map);
			
			return list;
		}
	  
		//获得日期
		private String getDate()
		{
			StringBuilder Date = new StringBuilder()                                      
		    .append(mYear).append("-")                    
		    .append(mMonth + 1).append("-")                    
		    .append(mDay).append(" "); 
			
			return Date.toString();
		}
		
	    public final class ViewHolder{
			public TextView left1;
			public TextView left2;
			public TextView left3;
			public TextView center1;
			public TextView center2;
			public TextView center3;
			public TextView star1;
			public TextView star2;
			public TextView star3;
			public TextView arrow1;
			public TextView arrow2;
			public TextView arrow3;
			public LinearLayout line1;
			public LinearLayout line2;
			public LinearLayout line3;
		}
		
		public class MyAdapter extends BaseAdapter{
			private LayoutInflater mInflater;
				
			public MyAdapter(Context context){
				this.mInflater = LayoutInflater.from(context);
			}
			@Override
			public int getCount() {
				// TODO Auto-generated method stub
				return DataList.size();
			}
			@Override
			public Object getItem(int arg0) {
				// TODO Auto-generated method stub
				return null;
			}
			@Override
			public long getItemId(int arg0) {
				// TODO Auto-generated method stub
				return 0;
			}
			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				
				ViewHolder holder = null;
				if (convertView == null) {
					
					holder=new ViewHolder();  
					
					convertView = mInflater.inflate(R.layout.sourceaddlistview, null);
					holder.left1 = (TextView)convertView.findViewById(R.id.left1);
					holder.left2 = (TextView)convertView.findViewById(R.id.left2);
					holder.left3 = (TextView)convertView.findViewById(R.id.left3);
					holder.center1 = (TextView)convertView.findViewById(R.id.center1);
					holder.center2 = (TextView)convertView.findViewById(R.id.center2);
					holder.center3 = (TextView)convertView.findViewById(R.id.center3);
					holder.star1 = (TextView)convertView.findViewById(R.id.star1);
					holder.star2 = (TextView)convertView.findViewById(R.id.star2);
					holder.star3 = (TextView)convertView.findViewById(R.id.star3);
					holder.arrow1 = (TextView)convertView.findViewById(R.id.arrow1);
					holder.arrow2 = (TextView)convertView.findViewById(R.id.arrow2);
					holder.arrow3 = (TextView)convertView.findViewById(R.id.arrow3);
					holder.line1=(LinearLayout)convertView.findViewById(R.id.line1);
					holder.line2=(LinearLayout)convertView.findViewById(R.id.line2);
					holder.line3=(LinearLayout)convertView.findViewById(R.id.line3);
					convertView.setTag(holder);
					
				}else {
					
					holder = (ViewHolder)convertView.getTag();
				}
				
				holder.line2.setVisibility(convertView.GONE);
				holder.line3.setVisibility(convertView.GONE);
				
				holder.left1.setText((String)DataList.get(position).get("left1"));
				holder.center1.setText((String)DataList.get(position).get("center1"));
				holder.star1.setText((String)DataList.get(position).get("star1"));
				holder.arrow1.setText((String)DataList.get(position).get("arrow1"));
				
				if(position==5)
				{
					holder.left2.setText((String)DataList.get(position).get("left2"));
					holder.center2.setText((String)DataList.get(position).get("center2"));
					holder.star2.setText((String)DataList.get(position).get("star2"));
					holder.arrow2.setText((String)DataList.get(position).get("arrow2"));
					
					holder.left3.setText((String)DataList.get(position).get("left3"));
					holder.center3.setText((String)DataList.get(position).get("center3"));
					holder.star3.setText((String)DataList.get(position).get("star3"));	
					holder.arrow3.setText((String)DataList.get(position).get("arrow3"));
					
					holder.line2.setVisibility(convertView.VISIBLE);
					holder.line3.setVisibility(convertView.VISIBLE);
				}
				return convertView;
			}						
		}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐