家庭记账本app进度之下拉框和数字转轮的相关应用
这次主要是悬系的下拉框Spinner和数字转轮NumberPicker的使用。先分析相关的用到的知识点。
在Android中,用string-array是一种简单的提取XML资源文件数据的方法。
例子如下:
把相应的数据放到values文件夹的arrays.xml文件里

- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string-array name="city">
- <item>丰台区</item>
- <item>石景山区</item>
- <item>海淀区</item>
- <item>漳州市</item>
- <item>朝阳区</item>
- </string-array>
- </resources>

然后在Activity里,直接使用
Resources res =getResources();
String[] city=res.getStringArray(R.array.city);
即可取得string-array name="city"下的所有item数据,简单又方便的一种方法
对于
- private AdapterView.OnItemSelectedListener spnSexOnItemSelected=new AdapterView.OnItemSelectedListener() {}
中的相关参数的知识点:
- parent 发生选中事件的 AbsListView。
- view AbsListView 中被选中的视图。
- position 视图在一览中的位置(索引)。
- id 被点击条目的行 ID。
- private AdapterView.OnItemSelectedListener spnSexOnItemSelected=new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
msSex=parent.getSelectedItem().toString();
}是用来确定下拉框中对应的被选中的哪一项。
具体相关的实现代码如下:
MainActivity.java
- package com.example.myapplicationhome;
- import androidx.appcompat.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.NumberPicker;
- import android.widget.RadioButton;
- import android.widget.RadioGroup;
- import android.widget.Spinner;
- import android.widget.TextView;
- public class MainActivity extends AppCompatActivity {
- private NumberPicker mNumPickerAge;
- private Button mBtnOk;
- private TextView mTxtR,mTxtAge;
- private Spinner mSpnSex;
- private String msSex;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mTxtAge=(TextView)findViewById(R.id.txtAge);
- mTxtAge.setText("25");
- mNumPickerAge=(NumberPicker)findViewById(R.id.numPickerAge);
- mNumPickerAge.setMinValue(0);
- mNumPickerAge.setMaxValue(200);
- mNumPickerAge.setValue(25);
- mNumPickerAge.setOnValueChangedListener(numPickerAgeOnValueChange);
- mBtnOk=(Button)findViewById(R.id.btnOk);
- mTxtR=(TextView)findViewById(R.id.txtR);
- mBtnOk.setOnClickListener(btnOkOnClick);
- mSpnSex=(Spinner)findViewById(R.id.spnSex);
- mSpnSex.setOnItemSelectedListener(spnSexOnItemSelected);
- }
- private View.OnClickListener btnOkOnClick =new View.OnClickListener(){
- @Override
- public void onClick(View v) {
- int iAge=mNumPickerAge.getValue();
- String strSug=getString(R.string.result);
- if(msSex.equals(getString(R.string.sex_male)))
- {
- if(iAge<)
- strSug+=getString(R.string.sug_not_hurry);
- else if(iAge>33)
- strSug+=getString(R.string.sug_get_married);
- else
- strSug+=getString(R.string.sug_find_couple);
- }
- else
- {
- if(iAge<)
- strSug+=getString(R.string.sug_not_hurry);
- else if(iAge>30)
- strSug+=getString(R.string.sug_get_married);
- else
- strSug+=getString(R.string.sug_find_couple);
- }
- mTxtR.setText(strSug);
- }
- };
- private AdapterView.OnItemSelectedListener spnSexOnItemSelected=new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
- msSex=parent.getSelectedItem().toString();
- }
- @Override
- public void onNothingSelected(AdapterView<?> parent) {
- }
- };
- private NumberPicker.OnValueChangeListener numPickerAgeOnValueChange=new NumberPicker.OnValueChangeListener() {
- @Override
- public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
- mTxtAge.setText(String.valueOf(newVal));
- }
- };
- }
strings.xml
- <resources>
- <string name="app_name">婚姻建议程序</string>
- <string name="sex">性别:</string>
- <string name="age">年龄:</string>
- <string name="btn_ok">确定</string>
- <string name="result">最终诊断结果:</string>
- <string name="edt_age_hint">(输入年龄)</string>
- <string name="sug_not_hurry">还不急</string>
- <string name="sug_get_married">你废了!</string>
- <string name="sug_find_couple">开始找对象。</string>
- <string name="sex_male">男</string>
- <string-array name="sex_list">
- <item>男</item>
- <item>女</item>
- </string-array>
- <string name="spn_sex_list_prompt">请选择性别</string>
- </resources>
activaty_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"
- android:orientation="vertical"
- tools:context=".MainActivity" >
- <TextView
- android:id="@+id/sex"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/sex"
- android:textSize="25sp" />
- <Spinner
- android:id="@+id/spnSex"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:entries="@array/sex_list"
- android:spinnerMode="dialog"
- android:prompt="@string/spn_sex_list_prompt" />
- <TextView
- android:id="@+id/age"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/age"
- android:textSize="25sp" />
- <TextView
- android:id="@+id/txtAge"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="0"
- android:textSize="25sp" />
- <NumberPicker
- android:id="@+id/numPickerAge"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="left" />
- <Button
- android:id="@+id/btnOk"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:background="#4CAF50"
- android:text="@string/btn_ok" />
- <TextView
- android:id="@+id/txtR"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/result"
- android:textSize="25sp" />
- </LinearLayout>
具体的实验结果如下:
家庭记账本app进度之下拉框和数字转轮的相关应用的更多相关文章
- 家庭记账本app进度之android中AlertDialog的相关应用以及对日期时间的相关操作(应用alertdialog使用的谈话框)
对于AlertDialog的相关知识: 1.创建构造器AlertDialog.Builder的对象: 2.通过构造器对象调用setTitle.setMessage.setIcon等方法构造对话框 ...
- 家庭记账本app进度之复选框以及相应滚动条的应用
这次主要是对于android中复选框的相应的操作.以及其中可能应用到的滚动条的相关应用.每一个复选框按钮都要有一个checkBox与之相对应. 推荐使用XML配置,基本语法如下:<CheckBo ...
- 家庭版记账本app进度之编辑框组件
<EditText>中设置提示信息是用到的语句是android:hint来进行提示语句的书写. android:inputType可以将此编辑框设置为输入密码的编辑框(现实的是小黑点) a ...
- 家庭记账本app进度之对于登录和注册两个界面点击按钮的相互跳转
这次主要完成了两个两个android页面之间的跳转.从登录页面点击注册就会跳转到注册页面.在注册页面点击返回登录,这样就可以返回到登录界面.主要是这样的操作.其中遇到了一个困难主要是当点击按钮的时候, ...
- 家庭记账本app进度之关于单选按钮的相关操作(添加点击按钮事件以及点击单选更改事件)
这次主要是通过代码实现了android中的相关单选按钮的相关操作,之后再最下面有一个按钮,当点击这个按钮的时候,会获取当上面的相关信息,之后再下方会进行相应的文字显示,获取的信息不同显示的信息也不会一 ...
- 家庭记账本app进度之关于tap的相关操作1
今天还主要学习关于怎样制作微信的先关的tap. 今天的主要成果是已经了解了相关的技术,以及相关的思路.代码经过一个下午的编写,基本接近尾声. 更详细的实验代码,以及相关的知识点将在明天完善后进行发表. ...
- 家庭记账本app进度之ui相关概念控制ui界面与布局管理
ui就是用户界面设计的意思. 首先是view,view相当于窗户上的玻璃. 1.android:id属性.android:id="@+id/user".他的id是user前面的@+ ...
- 进度1_家庭记账本App
今天完成了昨天的初步构想,详细介绍见上一篇博客,具体项目结构和案例如下: MainActivity.java: package com.example.familybooks; import andr ...
- 进度4_家庭记账本App
在上一个博客中,我学习了用Fragment进行数据的传值,但是出现了好多问题,我通过百度查阅资料发现fregment在进行数值传输的时候有的语法不能使用,并且不方便的进行数据库的使用,所以我在原来的家 ...
随机推荐
- ReentrantReadWriteLock 源码分析以及 AQS 共享锁 (二)
前言 上一篇讲解了 AQS 的独占锁部分(参看:ReentrantLock 源码分析以及 AQS (一)),这一篇将介绍 AQS 的共享锁,以及基于共享锁实现读写锁分离的 ReentrantReadW ...
- sklearn-转换器与机器学习流程
一.sklearn估计器 二.机器学习开发流程 .
- EPX-Studio调用Dll模块
procedure TForm1.BitBtn1Click(Sender: TObject); var REP : IExcelPanelXDisp; modulePath:string; begin ...
- Swift:字符串(String)分割之Substring优雅转换
认识Substring类型 这是一个全新的类型,看类名像是String的子类,但是大家千万别被误导了,Substring并不是String的子类,这是两个不同的类型,但是它们都继承了StringPro ...
- STL篇--list容器
list容器: 1.list 容器 的本质就是双向环形链表,最后一个节点刻意做成空节点,符合容器的左闭右开的原则2.list 的迭代器 是一个智能指针,其实就是一个类,通过操作符重载模拟各种操作(++ ...
- [剑指offer]3.数组中的重复数字
3.数组中的重复数字 题目 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了 ...
- angualrjs 总结 随记(二)
表单控制变量form 控制变量 //字段是否未更改 fromName.inputFieldName.$pristine //字段是否更改 fromName.inputFieldName.$dirty ...
- sql 语句系列(字符串的遍历嵌入删除与统计)[八百章之第十一章]
遍历字符串 我觉得首先要提出一个疑问: 一个数据库本身就是用于存储的,遍历字符串究竟有何意义? 先看如何实现的,毕竟sql service 是没有for循环,也没有loop和while的. selec ...
- 洛谷 P5639 【CSGRound2】守序者的尊严 题解
原题链接 简要题意: 从 \(1\) 号位开始走,可以连续走过一段连续的 \(0\) ,每走一次,所有位置取反. (即 \(0 \gets 1\),\(1 \gets 0\)). 算法一 模拟暴力即可 ...
- 【多校】2019 Multi-University Training Contest 1官方题解
Blank 定义dp[i][j][k][t]dp[i][j][k][t]dp[i][j][k][t]代表填完前ttt个位置后,{0,1,2,3}\{0,1,2,3\}{0,1,2,3}这4个数字最后一 ...