package com.example.myapplication; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.ImageView; import android.widget.RadioGroup; import android.widget.SeekBar; import android.widget.Toast; import android.widget.ToggleButton; import androidx.appcompat.app.AppCompatActivity; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private EditText mNameEditText; private RadioGroup mSexRadioGroup; private CheckBox mHotCheckBox, mFishCheckBox,mSourCheckBox; private SeekBar mSeekBar; private Button mSearchButton; private ImageView mFoodImageView; private ToggleButton mToggleButton; private List<Food> mFoods; private Person mPerson; private List<Food> mFoodResult; private int mPrice; private boolean misHot; private boolean misSour; private boolean misFish; private int mCurrentIndex; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 findViews(); //初始化数据 initDate(); //为控件添加监听器,实现基本功能 setListeners(); //自测 } private void initDate() { //new 出空的食物列表 mFoods = new ArrayList<>(); //初始化添加所有的数据 mFoods.add(new Food("麻辣香锅",55,R.drawable.malaxiangguo,true,false,false)); mFoods.add(new Food("水煮鱼",48,R.drawable.shuizhuyv,true,true,false)); mFoods.add(new Food("麻辣火锅",80,R.drawable.malahuoguo,true,true,false)); mFoods.add(new Food("清蒸鲈鱼",68,R.drawable.qingzhengluyv,false,true,false)); mFoods.add(new Food("桂林米粉",15,R.drawable.guilinmifen,false,false,false)); mFoods.add(new Food("上汤娃娃菜",28,R.drawable.shangtangwawacai,false,false,false)); mFoods.add(new Food("红烧肉",60,R.drawable.hongshaorou,false,false,false)); mFoods.add(new Food("木须肉",40,R.drawable.muxurou,false,false,false)); mFoods.add(new Food("酸菜牛肉面",35,R.drawable.suancainiuroumian,false,false,true)); mFoods.add(new Food("西芹炒百合",38,R.drawable.xiqinchaobaihe,false,false,false)); mFoods.add(new Food("酸辣汤",40,R.drawable.suanlatang,true,false,true)); mPerson = new Person(); mFoodResult = new ArrayList<>(); } private void setListeners() { //editText加入监听 mNameEditText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void afterTextChanged(Editable s) { if(mPerson != null){ mPerson.setName(s.toString()); } } }); //设置单选框Listener mSexRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int checkedId) { switch (checkedId){ case R.id.maleRadioButton: mPerson.setSex("男"); break; case R.id.femaleRadioButton: mPerson.setSex("女"); break; } } }); //设置复选框Listener mFishCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { misFish = isChecked; } }); mSourCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { misSour = isChecked; } }); mHotCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { misHot = isChecked; } }); mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean isChecked) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { mPrice = seekBar.getProgress(); Toast.makeText(MainActivity.this, "价格:" + mPrice, Toast.LENGTH_SHORT).show(); } }); mSearchButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { search(); } }); mToggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { if(mToggleButton.isChecked()){ //下一个菜 mCurrentIndex++; if(mCurrentIndex < mFoodResult.size()){ mFoodImageView.setImageResource(mFoodResult.get(mCurrentIndex).getPic()); }else{ Toast.makeText(MainActivity.this, "没了" , Toast.LENGTH_SHORT).show(); } }else{ //显示信息:菜品名称 if(mCurrentIndex < mFoodResult.size()){ String foodName = mFoodResult.get(mCurrentIndex).getName(); int foodPrice = mFoods.get(mCurrentIndex).getPrice(); Toast.makeText(MainActivity.this, "菜品:" +foodName + ", 价格:" + foodPrice + "元", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this, "没了" , Toast.LENGTH_SHORT).show(); } } } }); } //查找菜品 private void search() { //遍历菜品 //符合,加入列表 //结果每次清空 //如果为空,先初始化 if(mFoodResult == null){ mFoodResult = new ArrayList<>(); } //先清除之前的结果 mFoodResult.clear(); //当前显示结果中的第几道菜 mCurrentIndex = 0; for (int index = 0; index < mFoods.size(); index++) { Food food = mFoods.get(index); if(food != null){ //价格小于设定的价格 //顾客选择的口味 if(food.getPrice() < mPrice && (food.isHot()) == misHot || food.isFish() == misFish || food.isSour() == misSour){ mFoodResult.add(food); } } } //先显示第一张图片 if(mCurrentIndex < mFoodResult.size()){ mFoodImageView.setImageResource(mFoodResult.get(mCurrentIndex).getPic()); } } private void findViews() { mNameEditText = findViewById(R.id.nameEditText); mSexRadioGroup = findViewById(R.id.SexRadioGroup); mHotCheckBox = findViewById(R.id.hotCheckBox); mFishCheckBox = findViewById(R.id.fishCheckBox); mSourCheckBox = findViewById(R.id.sourCheckBox); mSeekBar = findViewById(R.id.seekBar); mSeekBar.setProgress(30); mSearchButton = findViewById(R.id.searchButton); mFoodImageView = findViewById(R.id.foodImageView); mToggleButton = findViewById(R.id.showToggleButton); mToggleButton.setChecked(true); } }
UI基础入门-综合案例-01
最新推荐文章于 2024-07-03 23:39:30 发布