1、页面布局 avtivity_main.xml 代码
<?xml version="1.0" encoding="utf-8"? <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="100px" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="购物页面" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ListView android:id="@+id/activity_main_listView_show" android:layout_width="wrap_content" android:layout_height="wrap_content"> </ListView> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="100px"> <Button android:id="@+id/activity_main_button_sub" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="结算"></Button> </LinearLayout> </LinearLayout>
2、类文件代码 MainActivity
package com.example.buycar; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.os.Parcelable; import android.view.View; import android.widget.Adapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } public void init(){ listView=findViewById(R.id.activity_main_listView_show); final ArrayList<Food> list=new ArrayList<>(); final Food bbq=new Food("烧烤",100,0,R.mipmap.bbq); final Food huoguo=new Food("火锅",200,0,R.mipmap.huoguo); final Food mian=new Food("冷面",30,0,R.mipmap.mian); final Food niupai=new Food("牛排",130,0,R.mipmap.niupai); final Food xia=new Food("大虾",70,0,R.mipmap.xia); list.add(bbq); list.add(huoguo); list.add(mian); list.add(niupai); list.add(xia); Adepter adepter=new Adepter(list,MainActivity.this); listView.setAdapter(adepter); adepter=new Adepter(list,MainActivity.this); Button buttonSub=findViewById(R.id.activity_main_button_sub); final Adepter finalAdepter = adepter; buttonSub.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ArrayList<Food> list1=finalAdepter.getList(); Intent intent=new Intent(MainActivity.this,Main2Activity.class); Bundle bundle=new Bundle(); // bundle.putSerializable("bbq",list1.get(0)); // bundle.putSerializable("huoguo",list1.get(1)); // bundle.putSerializable("mian",list1.get(2)); // bundle.putSerializable("niupai",list1.get(3)); // bundle.putSerializable("xia",list1.get(4)); //bundle.putParcelableArrayList("list1", (ArrayList<? extends Parcelable>) list1); intent.putExtras(bundle); startActivity(intent); } }); } }
3、list_item.xml代码
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 图片--> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <ImageView android:id="@+id/list_item_text_show_pic" android:layout_width="200px" android:layout_height="200px" android:src="@mipmap/bbq" > </ImageView> </LinearLayout> <!-- 名称和价格--> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:background="@drawable/edit_background" > <TextView android:id="@+id/list_item_textView_name" android:layout_width="200px" android:layout_height="100px" android:text="菜名" ></TextView> <TextView android:id="@+id/list_item_textView_TName" android:layout_width="200px" android:layout_height="100px" android:text="" ></TextView> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:background="@drawable/edit_background" > <TextView android:id="@+id/list_item_textView_price" android:layout_width="200px" android:layout_height="100px" android:text="价格" ></TextView> <TextView android:id="@+id/list_item_textView_Tprice" android:layout_width="200px" android:layout_height="100px" android:text="" ></TextView> </LinearLayout> </LinearLayout> <!-- 数量--> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <Button android:layout_width="100px" android:layout_height="65px" android:id="@+id/list_item_btn_add" android:text="+" android:background="@drawable/edit_background" ></Button> <EditText android:layout_width="100px" android:layout_height="65px" android:id="@+id/list_item_text_num" android:text="0" android:background="@drawable/edit_background" android:inputType="number" ></EditText> <Button android:layout_width="100px" android:layout_height="65px" android:id="@+id/list_item_btn_jian" android:text="-" android:background="@drawable/edit_background" ></Button> </LinearLayout> </LinearLayout>
4、适配器代码 Adepter
package com.example.buycar; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; public class Adepter extends BaseAdapter { private ArrayList<Food> list; private Context context; int x=0; public Adepter(ArrayList<Food> list,Context context){ this.list=list; this.context=context; } public ArrayList<Food> getList(){ return list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView( int position, View convertView, ViewGroup parent) { final int i=position; if (convertView == null) { convertView = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false); } Food food = list.get(position); ImageView imageView = convertView.findViewById(R.id.list_item_text_show_pic); TextView textViewName = convertView.findViewById(R.id.list_item_textView_TName); TextView textViewPrice = convertView.findViewById(R.id.list_item_textView_Tprice); final EditText editTextNum = convertView.findViewById(R.id.list_item_text_num); textViewName.setText(food.getName()); textViewPrice.setText(String.valueOf(food.getPrice())); editTextNum.setText(String.valueOf(food.getNum())); imageView.setImageResource(food.getPic()); // Button buttonAdd=convertView.findViewById(R.id.list_item_btn_add); buttonAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //int x=list.get(position).getNum()+1; //list.get(position).setNum(x+1); x=Integer.parseInt(editTextNum.getText().toString()); x++; editTextNum.setText(String.valueOf(x)); Food temp=list.get(i); temp.setNum(x); } }); Button buttonJian=convertView.findViewById(R.id.list_item_btn_jian); buttonJian.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { x=Integer.parseInt(editTextNum.getText().toString()); if (x>0){ x--; }else{ Toast.makeText(context,"数量大于1",Toast.LENGTH_SHORT).show(); } editTextNum.setText(String.valueOf(x)); Food temp=list.get(i); temp.setNum(x); } }); return convertView; } }