RadioGroup、RadioButton以及Spinner学习笔记
来源:互联网 发布:求众数java 编辑:程序博客网 时间:2024/06/07 01:47
以下仅为我作为一只工科狗学习Android编程过程中的一些学习笔记,主要提炼出自己在敲代码过程中遇到的一些问题。
学习Android控件对于我这个新手来说还是很困难的,写在谷歌doc里面还是不太好查找,写在这里吧。
1.RadioGrop&RadioButton
1.1布局文件部分
先上xml代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.ch05_ex2.Ch05_Activity" ><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" > <TextView android:id="@+id/nameTxt" android:text="姓名" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:id="@+id/inputTxt" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toRightOf="@id/nameTxt"/></RelativeLayout><LinearLayout android:orientation="vertical"android:layout_width="match_parent"android:layout_height="wrap_content"><RadioGroup android:id="@+id/RG"android:layout_width="match_parent"android:layout_height="wrap_content" ><RadioButton android:text="O" android:layout_width="wrap_content" android:layout_height="wrap_content"/><RadioButton android:text="A" android:layout_width="wrap_content" android:layout_height="wrap_content"/><RadioButton android:text="B" android:layout_width="wrap_content" android:layout_height="wrap_content"/><RadioButton android:text="AB" android:layout_width="wrap_content" android:layout_height="wrap_content"/></RadioGroup><TextViewandroid:id="@+id/resultText"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="请选择"/></LinearLayout>
这里的LinearLayout属于嵌套的一部分,整个的main.xml应该是这样的。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout ></LinearLayout> <RelativeLayout ></RelativeLayout> </LinearLayout>xml文件里面只有Layout套着Layout,RadioGroup套着RadioButton,没有说RadioButton可以和Layout并列的。新手的错误,汗、、、、
1.2 Java代码部分
package com.example.ch05_ex2;import android.app.Activity;import android.os.Bundle;import android.text.Editable;import android.view.View;import android.widget.EditText;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.RadioGroup.OnCheckedChangeListener;import android.widget.TextView;public class Ch05_Activity extends Activity {private TextView txtResult;private RadioGroup RG;private EditText inputTxt;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);inputTxt = (EditText) findViewById(R.id.inputTxt);txtResult = (TextView) findViewById(R.id.resultText);RG = (RadioGroup) findViewById(R.id.RG);RG.setOnCheckedChangeListener(new groupListener());}class groupListener implements OnCheckedChangeListener{@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {String sel;String name;RadioButton ButtonSel = (RadioButton) findViewById(checkedId);name = inputTxt.getText().toString();sel = ButtonSel.getText().toString();txtResult.setText(name+"你的血型为"+sel+"型");}}}只需要记住:RadioGroup点击时调用的方法是setOnCheckedChangeListener,绑定的对象是OnCheckedChangeListener这个接口的一个实现。
有时候Eclipse总是不会提示这个方法,而且好像OnCheckedListener在多个包里面都有,具体导入哪个包,不同的包里面又会是哪些实现,需要总结下。
总之这里的是
void android.widget.RadioGroup.setOnCheckedChangeListener(OnCheckedChangeListener listener)
2.Spinner控件
2.1 main.xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" ><RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/nameText" android:text="姓名" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" /> <EditText android:id="@+id/editText" android:layout_toRightOf="@id/nameText" android:layout_toEndOf="@id/nameText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="注意EditText的match_parent是否把前一个TextView挤掉了" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/labelText" android:text="学历" android:textSize="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Spinner android:id="@+id/ex3spinner" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_toRightOf="@id/labelText" android:layout_toEndOf="@id/labelText" /> <TextView android:id="@+id/txtResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_below="@+id/ex3spinner" android:gravity="center_vertical|center_horizontal" android:text="这里将会显示您的选择" /> </RelativeLayout> </LinearLayout>
2.2 string.xml文件
考虑到本地化 的情况,将选项列表设置在项目的<res/values/strings.xml>中,再由程序通过资源文件获取列表数组来使用。
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">Ch05_ex3</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> <string-array name = "scholar"> <item >高中</item> <item >大学</item> <item >硕士</item> <item >博士</item> </string-array></resources>
2.3 Java代码
package com.example.ch05_ex3;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.EditText;import android.widget.Spinner;import android.widget.TextView;public class Ch05_ex3_Activity extends Activity {private EditText editText;private Spinner ex03Spinner;private TextView txtResult;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);editText = (EditText) findViewById(R.id.editText);ex03Spinner = (Spinner) findViewById(R.id.ex3spinner);txtResult = (TextView) findViewById(R.id.txtResult);//创建ArrayAdapter,数据源是string.xml里面的scholar数组ArrayAdapter<CharSequence> myAdapter = ArrayAdapter.createFromResource(this, R.array.scholar, android.R.layout.simple_spinner_item);//设置myAdapter显示的格式//待会记得把这个格式改一下看看还有别的什么样式
//simple_spinner_dropdown_item只是最简单的样式,不喜欢的改别的试试myAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//设置Spinner的数据源ex03Spinner.setAdapter(myAdapter);//为spinner组件的ItemSelected事件绑定监听器ex03Spinner.setOnItemSelectedListener(new myListener());}class myListener implements OnItemSelectedListener{@Overridepublic void onItemSelected(AdapterView<?> suibian, View v, int position, long id) {String inputname;String sel;inputname = editText.getText().toString();sel = suibian.getSelectedItem().toString();txtResult.setText(inputname+"的学历为"+sel);}@Overridepublic void onNothingSelected(AdapterView<?> hehe) {txtResult.setText("什么都没有选中!");}}}需要记住:Spinner的使用需要先new一个ArrayAdapter来提供数据源(createFromResource)以及规定最终的显示格式(setDropDownViewResource),
最后再使用setAdapter绑定,还有别忘了添加一个监听器。
以上就是关于RadioGroup、RadioButton以及Spinner这些控件的学习记录,所有代码直接拷进eclipse就可以用了。
完事。
0 0
- RadioGroup、RadioButton以及Spinner学习笔记
- Android学习笔记之RadioButton(RadioGroup)
- Android学习笔记之RadioButton(RadioGroup)
- CheckBox和RadioButton以及RadioGroup
- 【Android学习笔记】RadioGroup,RadioButton的使用&CheckBox的使用
- 雾山的Anrdoid学习笔记---CheckBox,RadioGroup&RadioButton
- 雾山的Anrdoid学习笔记---CheckBox,RadioGroup&RadioButton .
- Android学习笔记七:基本视图组件:RadioGroup和RadioButton
- RadioGroup的RadioButton简单用法——学习笔记
- UI组件详解2---- RadioGroup、RadioButton、CheckBox、ListView、Spinner
- RadioGroup以及RadioButton自定义样式的使用
- android 手机开发笔记--RadioGroup RadioButton
- RadioGroup && RadioButton
- RadioGroup,RadioButton
- RadioButton&RadioGroup
- RadioGroup+RadioButton
- RadioButton&RadioGroup
- RadioButton+RadioGroup
- JavaScript之充实文档内容
- jetty-maven-plugin
- 二进制
- JS事件
- Activity跳转与传值
- RadioGroup、RadioButton以及Spinner学习笔记
- study~~~
- centos的软件安装方法rpm和yum
- Java队列学习(一)
- 常见的开源协议
- Django之第一个app<16>
- JS与PHP互通的RSA加解密
- 与NULL有关的函数
- 关于listView中的自定义以后不响应onItemClick事件的解决方法