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日