首页>代码>基于ListView开发android简易点菜系统实例>/Dddtext/src/com/jmi/Dddtext/Dian.java
package com.jmi.Dddtext;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;







import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class Dian extends Activity {
	 Set<GreenSelected> greenselected=new HashSet<GreenSelected>();//存放已经选择的菜

	String[] greenname={"东坡肉","霸王蟹","波士顿虾","鳕鱼","神户牛肉"};
	String[] greenprice={"20.00","300.00","200.00","100.00","200.00"};
	int[] greenimgs=new int[]{R.drawable.i1,R.drawable.i2,R.drawable.i3,R.drawable.i4,R.drawable.i5};
	ListView listview;
	//生成动态数组,存放数据   
    ArrayList<HashMap<String, Object>> mylist = 
    		new ArrayList<HashMap<String, Object>>();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.diana);
       
        listview=(ListView) findViewById(R.id.listView1);
        getData();//调用mydata方法,将mylist写入
        //新建一个适配器
        MyAdapter myadapter =new MyAdapter(this);
        //listview控件装载适配器
        listview.setAdapter(myadapter);
    }
  //getData方法的功能:将数据存放入mylist
  	private void getData(){
  		for(int i=0;i<greenname.length;i++){
  			HashMap<String, Object> map = new HashMap<String, Object>();  
              map.put("ItemName", greenname[i]);  
              map.put("ItemPrice", greenprice[i]);  
              map.put("ItemImage", greenimgs[i]);  
              mylist.add(map);  
  		}
  	}
  //编写特定的适配器类,必须继承已有的基本适配器类
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 mylist.size();//size方法是干什么的
	}

	@Override
	public Object getItem(int arg0) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public View getView(final int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		ViewHolder holder =null;//准备存放一行的四个控件
		if (convertView == null) { 		          
	        holder=new ViewHolder();  		          
	        //可以理解为从vlist获取view 之后把view返回给ListView 		          
	        convertView = mInflater.inflate(R.layout.mylistitem, null); 
	        holder.image = (ImageView)convertView.findViewById(R.id.imageView1); 
	        holder.name = (TextView)convertView.findViewById(R.id.textView1); 
	        holder.price = (TextView)convertView.findViewById(R.id.textView2); 
	        holder.viewBtn = (Button)convertView.findViewById(R.id.button1); 
	        convertView.setTag(holder);        
	      }else {        
	        holder = (ViewHolder)convertView.getTag(); 
	      } 
		holder.image.setImageResource(greenimgs[position]);
	      holder.name.setText((String)mylist.get(position).get("ItemName")); 
	      holder.price.setText((String)mylist.get(position).get("ItemPrice")); 
	      holder.viewBtn.setTag(position); 
	      //给Button添加单击事件 添加Button之后ListView将失去焦点 
	      //需要的直接把Button的焦点去掉  android:focusable="false"
	      holder.viewBtn.setOnClickListener(new View.OnClickListener() {
	      
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				GreenSelected newgreen = new GreenSelected();
		    	  newgreen.name = mylist.get(position).get("ItemName").toString();
		    	  newgreen.price = mylist.get(position).get("ItemPrice").toString();
					newgreen.image = greenimgs[position];
					greenselected.add(newgreen);//将选中的菜单序号存入set中
					
                   
					Log.i("选中:"+mylist.get(position).get("ItemName").toString(),mylist.get(position).get("ItemPrice").toString());
					//在日志中显示所有已经选中的菜
					for(GreenSelected it:greenselected){
						Log.i("已经选中的:"+it.name,"该菜价格:"+it.price);
					}}});

      return convertView;
	}
	
}
//内部类,与每一行数据对应
	class ViewHolder{
		public ImageView image;//菜的图片
	    public TextView name; //菜名
	    public TextView price; //菜的单价
	    public Button viewBtn; //+号按钮
	}

	public void toList (View theButton){
       	Intent intent = new Intent(Dian.this,ListActivity.class);
       	intent.putExtra("list",(Serializable)greenselected);
         	 startActivity(intent);
  
}  
}
最近下载更多
3542741340  LV1 2024年12月12日
aliguaguagua  LV1 2023年10月12日
2074520745  LV1 2023年6月24日
yyyyyyzh  LV8 2023年6月11日
1602701143  LV1 2023年6月3日
我真不会打篮球  LV1 2023年6月3日
龙门客栈  LV9 2023年6月1日
chloe0417  LV1 2023年5月29日
倾城之恋1  LV5 2023年5月21日
202105013142  LV1 2023年1月31日
最近浏览更多
chenranr  LV10 2024年12月26日
3542741340  LV1 2024年12月12日
nghiavudev 2024年11月3日
暂无贡献等级
wjs-zuizui 2024年10月19日
暂无贡献等级
微信网友_7143536520269824  LV1 2024年8月28日
2636804923  LV6 2024年6月19日
咩咩咩咩咩  LV2 2024年6月17日
adminadminsqwqe  LV8 2024年6月14日
AIWU1234  LV2 2024年6月9日
1941549176  LV4 2024年6月4日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友