首页>代码>基于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);
  
}  
}
最近下载更多
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日
tong07  LV2 2022年12月20日
最近浏览更多
wxb666  LV3 3月13日
不止是六位数  LV7 2023年12月13日
微笑刺客  LV15 2023年12月12日
statics 2023年11月27日
暂无贡献等级
G2andIG  LV5 2023年11月6日
faux123455  LV1 2023年10月27日
aliguaguagua  LV1 2023年10月12日
panwill  LV4 2023年8月18日
Yanguu 2023年7月11日
暂无贡献等级
2074520745  LV1 2023年6月24日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友