Android小练习2——制作点菜界面
要求:制作如图所示的点菜界面
需要id的有:请输入姓名EditText(name);RadioGroup(gender),男RadioButton(man),女RadioButton(lady);辣CheckBox(la),海鲜CheckBox(haixian),酸CheckBox(suan);进度条SeekBar(sb),0TextView(yusuan);寻找菜品Button(xunzhao);图片ImageView(img,iv);下一个Button(next)。
把图片放入drawable
总体上:
在activity_main.xml中
开始选餐
<!-- 开始选餐--><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="#00FF00"android:gravity="center"android:text="开始选餐"android:textSize="30sp"></TextView>
姓名栏
EditText中使用权重
<!-- 姓名栏--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="姓名:"android:textSize="30sp"></TextView><EditTextandroid:id="@+id/name"android:layout_width="0sp"android:layout_height="wrap_content"android:layout_weight="1"android:hint="请输入姓名"></EditText></LinearLayout>
性别栏
android:checked="true"设置默认选中“男”
<!-- 性别栏--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="性别:"android:textSize="30sp"></TextView><RadioGroupandroid:id="@+id/gender"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:orientation="horizontal"><RadioButtonandroid:id="@+id/man"android:layout_width="wrap_content"android:layout_height="wrap_content"android:checked="true"android:text="男"></RadioButton><RadioButtonandroid:id="@+id/lady"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="女"></RadioButton></RadioGroup></LinearLayout>
喜好栏
<!-- 喜好栏--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="喜好:"android:textSize="30sp"></TextView><CheckBoxandroid:id="@+id/la"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:checked="true"android:text="辣"android:textSize="20sp"></CheckBox><CheckBoxandroid:id="@+id/haixian"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="海鲜"android:textSize="20sp"></CheckBox><CheckBoxandroid:id="@+id/suan"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="酸"android:textSize="20sp"></CheckBox></LinearLayout>
预算栏
<!-- 预算栏--><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="预算:"android:textSize="30sp"></TextView><SeekBarandroid:id="@+id/sb"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_weight="1"android:progress="0"></SeekBar><TextViewandroid:id="@+id/yusuan"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="0"android:textSize="20sp"></TextView><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="元"android:textSize="20sp"></TextView></LinearLayout>
寻找菜品
<!-- 寻找菜品--><Buttonandroid:id="@+id/xunzhao"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="寻找菜品"></Button>
图片
<!-- 图片--><ImageViewandroid:id="@+id/img"android:layout_width="wrap_content"android:layout_height="0dp"android:layout_weight="1"></ImageView>
下一个
<!-- 下一个--><Buttonandroid:id="@+id/next"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="下一个"></Button>
在caipin.java中
1.姓名,价格,类别(辣,海鲜,酸),图片路径
2.Generate—Getter and Setter—全选—OK
3.Generate—Constructor—全选—OK
package com.example.myapplication3;public class caipin {private String name;private int price;private String leibie;private int lujing;public caipin(String name, int price, String leibie, int lujing) {this.name = name;this.price = price;this.leibie = leibie;this.lujing = lujing;}public caipin() {}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public String getLeibie() {return leibie;}public void setLeibie(String leibie) {this.leibie = leibie;}public int getLujing() {return lujing;}public void setLujing(int lujing) {this.lujing = lujing;}
}
在MainActivity.java中
1.提成员变量:ctrl+alt+F
2.sb.setOnSeekBarChangeListener:进度条拖动监听事件——改变,开始,结束(yusuan):把seekBar传到 yusuan,获取seekBar.getProgress()—int,yusuan.setText— string类型——yusuan.setText(seekBar.getProgress() + “”);
3.建caipin.java
4.lcp:放菜名,价格,类别(辣,海鲜,酸),图片路径;lc:放筛选出来的数据。
5.xunzhao.setOnClickListener:寻找的监听事件—把喜好(la1,haixian1,suan1)和预算(yuusuan1)作为筛选条件,筛选(for循环)lcp中数据。
6.三元表达式——数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
是否选中辣—— String la1 = la.isChecked() == true ? “1” : “0”;——把CheckBox变成String类型,“1”表示类别。la1.equals(lcp.get(i).getLeibie()) :第i个的类别是la1说明选中了第一个
7. next.setOnClickListener:next的监听事件(图片路径);iv.setBackgroundResource(lc.get(index).getLujing());—将index=0;的图片路径传到ImageView;防止越界加if判断,有就显示图片,没有就显示“没有啦”并且不可点击。
package com.example.myapplication3;import androidx.appcompat.app.AppCompatActivity;import android.util.Log;
import android.os.Bundle;
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.ProgressBar;
import android.widget.RadioGroup;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {private EditText name;private RadioGroup gender;private CheckBox la;private CheckBox haixian;private CheckBox suan;private TextView yusuan;private List<caipin> lcp;private List<caipin> lc;private Button next;private ImageView iv;private int index;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);name = findViewById(R.id.name);gender = findViewById(R.id.gender);la = findViewById(R.id.la);haixian = findViewById(R.id.haixian);suan = findViewById(R.id.suan);SeekBar sb = findViewById(R.id.sb);yusuan = findViewById(R.id.yusuan);sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {yusuan.setText(seekBar.getProgress() + "");}});lcp = new ArrayList<caipin>();lcp.add(new caipin("桂林米粉", 18, "1", R.drawable.guilin));lcp.add(new caipin("红烧肉", 32, "2", R.drawable.hongshaorou));lcp.add(new caipin("麻辣火锅", 78, "3", R.drawable.malahuoguo));lcp.add(new caipin("麻辣香锅", 48, "3", R.drawable.malaxiangguo));lcp.add(new caipin("木须肉", 22, "2", R.drawable.muxurou));lcp.add(new caipin("清蒸鲈鱼", 58, "1", R.drawable.qingzhengluyu));lcp.add(new caipin("水煮鱼", 24, "1", R.drawable.shuizhuyu));lcp.add(new caipin("酸辣汤", 8, "2", R.drawable.suanlatang));lcp.add(new caipin("酸菜牛肉面", 89, "3", R.drawable.suncainiuroumian));lcp.add(new caipin("娃娃菜", 45, "1", R.drawable.wawacai));lcp.add(new caipin("西芹", 6, "3", R.drawable.xiqin));Button xunzhao = findViewById(R.id.xunzhao);xunzhao.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {lc = new ArrayList<caipin>();int yusuan1 = Integer.parseInt(yusuan.getText() + "");String la1 = la.isChecked() == true ? "1" : "0";String haixian1 = haixian.isChecked() == true ? "2" : "0";String suan1 = suan.isChecked() == true ? "3" : "0";for (int i = 0; i < lcp.size(); i++) {if ( lcp.get(i).getPrice() <= yusuan1 && (la1.equals(lcp.get(i).getLeibie()) || haixian1.equals(lcp.get(i).getLeibie()) || suan1.equals(lcp.get(i).getLeibie()))) {lc.add(lcp.get(i));}}}});iv = findViewById(R.id.img);next = findViewById(R.id.next);index=0;next.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(index <lc.size()) {iv.setBackgroundResource(lc.get(index).getLujing());Toast.makeText(MainActivity.this,lc.get(index).getName(),Toast.LENGTH_LONG).show();index++;}else{next.setText("没有啦");next.setEnabled(false);}}});}}
Android小练习2——制作点菜界面相关推荐
- Android Studio 制作微信界面 上
工程功能介绍 打开app,首先是个闪屏界面(常见于一般打开app时的小广告),设置时间为2s后进入登录界面.在登录界面中,中间可以输入密码,点击登录按钮进入微信的界面. 微信的界面由4个fragm ...
- Android 音乐播放器制作(带有通知栏、Widget小挂件)
Android 音乐播放器制作(带有通知栏显示.Widget小挂件) 我用的开发工具是AndroidStudio,我的手机是Android7.1.2,我的另一个测试手机是Android8.0. 整个项 ...
- Android Studio 制作微信界面 下
主界面 上一篇文章的链接: Android Studio 制作微信界面 上_nazonomaster的博客-CSDN博客https://blog.csdn.net/nazonomaster/artic ...
- Android小项目之--前台界面与用户交互的对接 进度条与拖动条(附源码)
都知道水果公司(苹果)是己尊重用户体验著称的公司,其设计的产品人性化十足,不得不令后来者赞叹,竞相模仿.iphone的成功就是其典型的案例,做为其移动系统的死对头 Google 想要在市场上分得一杯羹 ...
- ⭐️Python实用小工具之制作酷炫二维码(有界面、附源码)⭐️
镇楼图 文章目录 写在前面 制作二维码 安装myqr库 myqr.run()参数详解 制作普通二维码 制作黑白背景二维码 制作彩色背景二维码 制作大边长二维码 制作动态二维码 解析二维码 tkinte ...
- AndroidStudio制作欢迎界面与应用图标,使用Android Studio 3.0.1作为开发工具
点击上方 "黄广达" ,选择 "置顶公众号" 有趣有内涵的文章第一时间送达! 喝酒I创作I分享 生活中总有些东西值得分享 前言 大家好,我是 ...
- PySimpleGUI图形界面绘制及办公自动化小软件的制作
PySimpleGUI图形界面绘制及办公自动化小软件的制作 1 PySimpleGUI安装 2 PySimpleGUI制作简易弹窗界面 2.1 两种界面设计模式 2.2 制作弹窗 2.3 文字内容弹窗 ...
- Android 电影排行榜app制作(可加入观看清单保存)
Android 电影排行榜app制作(可加入观看清单保存) 第一步:在xml文件上进行主界面的布局 采用LinearLayout布局,添加ImageView控件(电影小图标)实现跳转到观看清单的页面, ...
- python拿什么做可视化界面好-python爬虫如何制作可视化界面?(pyqt5环境配置篇)...
却道天凉好个秋~ pyqt5+python+qtdesigner+pycharm制作一个可视化的GUI爬虫工具 前言: 最近闲来无聊又开始了py之路,这次需要的是制作一个贴吧的关键词搜索相关帖子的工具 ...
最新文章
- python出现typeerror原因是_Python 文件添加列表数据后TypeError原因
- vivado----fpga硬件调试 (六)----数据导出
- 19、计算机图形学——蒙特卡洛路径追踪
- 巧用DevExpress GridView导入导出Excel
- 有理有据:一篇来自前端同学对后端接口的吐槽!
- 合并远程仓库到本地_Git工作区、暂存区、本地仓库和远程仓库科普
- 软定时器的原理与创建
- python资源百度云_Python Selenium 百度云分享链接资源 批量保存
- C++使用boost::bind 订阅消息中的返回函数传入多个参数
- iOS 中的视图函数 init initwithnib viewDidLoad viewWillAppear的总结
- java 富文本 xss_Jsoup 防止富文本 XSS 攻击
- OpenCV_Corner Detect with FastFeatureDetector(基于FAST的角点检测) 及 SUSAN算子
- C++--第19课 - 专题三经典问题解析
- matlab画圆的命令_matlab画圆
- 吴恩达-斯坦福CS229机器学习课程资料与算法的Python实现
- icp-ms质量分析器与磁质谱仪
- c语言中以只读方式打开,C 中如何以只读方式打开文件
- ATX 移动设备共享平台
- Excel从身份证号提取生日
- 电脑投屏到电视android,电脑怎么投屏到电视?看完这篇文章你就懂了