1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android 单选按钮 下拉列表框

Android 单选按钮 下拉列表框

时间:2024-06-02 12:39:23

相关推荐

Android   单选按钮  下拉列表框

单选按钮:

1.特点:

单选按钮一组是互斥的,使用RadioGroup实现互斥

2.RadioGroup继承LinnerLayout:所以可以使用linearLayout的相关属性,

例如:

orientation,,,,

RadioGroup默认方向是垂直。LinearLayout默认水平方向的。

3.对于单选按钮的事件监听,

通常加载到RadioGroup,

接口:RadioGroup.OnCheckedChangeListener

实现接口的方法

radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {//第一个参数是按钮组对象,,第二个参数被选择的单选按钮的id}});

4.开关按钮:Switch控件

类名Swith状态,打开和关闭,默认情况下,有默认的样式,可以经过一些属性进行修改、常用的属性:开关的显示效果,由thumb滑块和track轨迹,,可以用select shape来设计样子。

<!-- 开关按钮--><Switchandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="开关按钮" //开关按钮前面的文字信息android:showText="true" //开关按钮上的 off on 提示信息android:textOn="开" //当按钮为开,,,按钮图标提示开android:textOff="关" //当按钮为开,,,按钮图标提示关/>

5.按钮图标:

andrord:button 图片要求不高 跟文字间距也不要求的时候使用android :background 用于较大的图标显示android:drawableleft 使用的时候得把默认的单选按钮图标隐藏,图标和文字之间有间隔要求的时候可以使用

<RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/rd_1"android:text="选项11"android:button="@null"android:drawableLeft="@drawable/logo"android:drawablePadding="20dp" //用来设置图标和文本间的距离/>

效果图:

下拉列表框:Spinner

1.作用:选择

2.显示效果: android:spinnerMode=“dropdown” 下拉列表dropdown,弹出对话框dialog

3.类及继承关系 Spinner直接父类AbsSpinner 间接父类AdapterView ,,, Adapter适配器

4.怎么把数据放进去:

静态方法:将下拉列表中内容放在资源文件string中,

<string-array name="content"><item>北京</item><item>上海</item><item>南京</item><item>广州</item></string-array>

在MainActivity.xml文件中写

spinnerMode写下拉列表框的形式dropdown,,,,对话框形式为dialog

android:entries="@array/content" string文件中定义过的数组

<Spinnerandroid:id="@+id/spinner"android:spinnerMode="dropdown"android:entries="@array/content"android:layout_width="wrap_content"android:layout_height="wrap_content"></Spinner>

动态的方式:界面中放好Spinner控件,准备好数据,,可以是数组,也可以是集合ArrayList<Stirng>把数据放到控件上去,需要使用适配器ArrayAdept

MainActivity.xml文件中:

<Spinnerandroid:id="@+id/spinner"android:spinnerMode="dropdown"android:layout_width="wrap_content"android:layout_height="wrap_content"></Spinner>

在java文件中

//定义数组String[] ctype=new String[]{"+1","+2","+3","+4","+5"};//适配器,,第一个参数this上下文对象,第二个参数提供布局 自带的布局,,第三个是数组对象ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,ctype);spinner =(Spinner)findViewById(R.id.spinner);//给spinner添加适配器spinner.setAdapter(adapter);

理解适配器:

列表控件:

两部分,

显示Spinner-----------外盒

数据---------------------内容

适配器就是把数据包装好,,适配器起到包数据的作用。

适配器下拉列表,,,添加不同于默认的显示效果

下拉列表事件监听:

当列表项被选中的时候触发什么事件:

在java文件中,给spinner下拉框对象添加选择事件:

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {,

里面有两个方法:一个是被选中的,,一个是没被选

,,,}

package com.example.syx.spinner;import android.annotation.TargetApi;import android.os.Build;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ImageView;import android.widget.Spinner;import android.widget.Toast;public class MainActivity extends AppCompatActivity{private Spinner spinner;private ArrayAdapter<String> adapter;@TargetApi(Build.VERSION_CODES.JELLY_BEAN)@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);spinner =(Spinner)findViewById(R.id.spinner);String[] arr=new String[]{"山东","江苏","浙江","河北"};adapter = new ArrayAdapter(this,R.layout.spinner_item,arr);adapter.setDropDownViewResource(R.layout.spinner_item_one);spinner.setDropDownVerticalOffset(100);//spinner.setDropDownWidth(800);spinner.setAdapter(adapter);spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position, long id) {//第一个参数,,,当前选中的spinner对象,//第三个,position 选中列表项当前所在的位置,position能够拿到列表项的额位置,也就相当于定义的spinner 显示内容的数组位置,,,//第四个参数id,选择选中参数所在的行Toast.makeText(MainActivity.this,"你选择的区号是:"+arr[position], Toast.LENGTH_SHORT).show();}@Overridepublic void onNothingSelected(AdapterView<?> parent) {}});}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。