精华内容
下载资源
问答
  • 本篇文章主要介绍了Android自定义单选多选下拉列表的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Android 单选按钮 下拉列表框

    千次阅读 2020-04-01 20:33:20
    单选按钮: 1.特点: 单选按钮一组是互斥的, 使用RadioGroup实现互斥 2.RadioGroup继承LinnerLayout: 所以可以使用linearLayout的相关属性, 例如: orientation,,,, RadioGroup默认方向是垂直。...

    单选按钮:


    1.特点:

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

    2.RadioGroup继承LinnerLayout: 所以可以使用linearLayout的相关属性,
    例如:
    orientation,,,,
    RadioGroup默认方向是垂直。LinearLayout默认水平方向的。

    3.对于单选按钮的事件监听,
    通常加载到RadioGroup,
    接口:RadioGroup.OnCheckedChangeListener
    实现接口的方法

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

    4.开关按钮:Switch控件

    • 类名Swith
    • 状态,打开和关闭,默认情况下,有默认的样式,可以经过一些属性进行修改、
    • 常用的属性
    • 开关的显示效果,由thumb滑块和track轨迹,,可以用select shape来设计样子。
     <!-- 开关按钮-->
        <Switch
            android: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 使用的时候得把默认的单选按钮图标隐藏,图标和文字之间有间隔要求的时候可以使用
     <RadioButton
                android: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文件中定义过的数组

     <Spinner
            android: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文件中:

     <Spinner
            android: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)
        @Override
        protected 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() {
                @Override
                public 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();
    
    
               
                }
    
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
    
                }
            });
    	}
    
    
    }
    
    
    展开全文
  • package ...import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Auto...

    package cn.itcast.commonui;

    import android.app.Activity;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.AdapterView;

    import android.widget.ArrayAdapter;

    import android.widget.AutoCompleteTextView;

    import android.widget.CheckBox;

    import android.widget.CompoundButton;

    import android.widget.CompoundButton.OnCheckedChangeListener;

    import android.widget.RadioButton;

    import android.widget.SeekBar;

    import android.widget.SeekBar.OnSeekBarChangeListener;

    import android.widget.Spinner;

    public class DemoActivity extends Activity {

    /** Called when the activity is first created. */

    RadioButton rb;

    CheckBox checkBox1;

    Spinner spinner;

    SeekBar seekBar1;

    AutoCompleteTextView autotext;

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    checkBox1 = (CheckBox) this.findViewById(R.id.checkBox1);

    rb = (RadioButton) this.findViewById(R.id.radioButton1);

    seekBar1 = (SeekBar) this.findViewById(R.id.seekBar1);

    //自动提示输入

    String[] names = { "老张", "老方", "老毕", "李明", "李丽", "陈江", "abc", "acc" };

    AutoCompleteTextView nameText = (AutoCompleteTextView) this

    .findViewById(R.id.name);

    ArrayAdapter adapter = new ArrayAdapter(this,

    android.R.layout.simple_dropdown_item_1line, names);

    nameText.setAdapter(adapter);

    //进度条

    seekBar1.setMax(100);

    seekBar1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

    public void onStopTrackingTouch(SeekBar seekBar) {

    // TODO Auto-generated method stub

    }

    public void onStartTrackingTouch(SeekBar seekBar) {

    // TODO Auto-generated method stub

    }

    public void onProgressChanged(SeekBar seekBar, int progress,

    boolean fromUser) {

    System.out.println("当前的进度为 " + progress);

    }

    });

    setSpinner();//下拉框

    //多选一按钮

    rb.setOnCheckedChangeListener(new OnCheckedChangeListener() {

    public void onCheckedChanged(CompoundButton buttonView,

    boolean isChecked) {

    System.out.println("是否选择" + isChecked);

    }

    });

    rb.setChecked(false);

    //单选按钮

    checkBox1.setOnCheckedChangeListener(new OnCheckedChangeListener() {

    public void onCheckedChanged(CompoundButton buttonView,

    boolean isChecked) {

    System.out.println("checkbox 是否选择" + isChecked);

    }

    });

    }

    private void setSpinner() {

    ArrayAdapter adapter = new ArrayAdapter(this,

    android.R.layout.simple_spinner_item);

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    adapter.add("java");

    adapter.add("dotNet");

    adapter.add("php");

    Spinner spinner = (Spinner) findViewById(R.id.spinner);

    spinner.setAdapter(adapter);

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

    public void onItemSelected(AdapterView> parent, View view,

    int position, long id) {

    System.out.println(position + "被选择");

    }

    public void onNothingSelected(AdapterView> parent) {

    System.out.println("没有内容被选择");

    }

    });

    }

    }

    展开全文
  • 实现自定义Spinner和listView,实现多选
  • Android自定义单选多选下拉列表

    千次阅读 2017-07-29 12:43:48
    发疯的产品要做一个可以单选和多选的下拉列表,陪你玩玩吧。直接上效果。实现方案:我的思路是自定义一个类继承PopupWindow,里面的选项采用Listview,再结合一些动画来实现。核心代码。

    发疯的产品要做一个可以单选和多选的下拉列表,陪你玩玩吧。

    直接上效果:

    实现方案:

    我的思路是自定义一个类继承PopupWindow,里面的选项采用Listview,再结合一些动画来实现。

    核心代码:

    public class MultiSelectPopupWindows extends PopupWindow {
       
    
        private Context context;
        private V
    展开全文
  • Android下拉列表 采用组件设置的形式添加下拉列表 我们要先添加选项,也就是我们列表中要选择的东西。 定义在values文件夹中的strings.xml中. <string-array name="spinner_data"> <item>山西</...

    Android下拉列表

    采用组件设置的形式添加下拉列表

    我们要先添加选项,也就是我们列表中要选择的东西。
    定义在values文件夹中的strings.xml中.

     <string-array name="spinner_data">
            <item>山西</item>
            <item>陕西</item>
            <item>江西</item>
        </string-array>
    

    如上,我们定义了三个选项。
    在main中,我们定义如下组件,即可实现含有上面定义的三个选项的下拉列表。

     <Spinner
            android:id="@+id/spinner"
            android:layout_width="409dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="1dp"
            android:layout_marginLeft="1dp"
            android:layout_marginTop="52dp"
    
            android:entries="@array/spinner_data"
            android:spinnerMode="dialog"
    
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    

    android:spinnerMode=“dialog” 表示我们的下拉列表是弹出框的形式,
    android:spinnerMode= “dropdown” 表示下拉列表是下拉的形式。

    但是这样的下拉列表选项不方便更改,我们还可以选择代码的形式

    代码形式的下拉列表

    package com.example.test_spinner;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.BaseAdapter;
    import android.widget.Spinner;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
    
        private String[] ss=new String[]{
          "北京",
          "上海",
          "深圳"
        };
        private List<String> list =new ArrayList<>();
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            list.add("java");
            list.add("cpp");
    
            Spinner spinner=findViewById(R.id.spinner);
            BaseAdapter adapter =new MyAdapter();//adapter适配器
            spinner.setAdapter(adapter);
    
           
    
        }
        private class MyAdapter extends BaseAdapter{
    
            @Override
            public int getCount() {
                //return ss.length;
                return list.size();
            }
    
            @Override
            public Object getItem(int position) {
                return null;
            }
    
            @Override
            public long getItemId(int position) {
                return 0;
            }
    
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                TextView textView=new TextView(MainActivity.this);
               //textView.setText(ss[position]);
                textView.setText(list.get(position));
                return textView;
            }
        }
    }
    

    列表中的选项可以由数组给出,也可以由list给出。以上代码是list形式,如果选择注释中的代码,则是采用数组的形式。
    在这里插入图片描述
    如果感觉上面这种方式过于长,我们也可以选择另一种较为简短的代码——适配数组的代码形式:

    ArrayAdapter<String> adapter2=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item ,ss);
            Spinner spinner2=findViewById(R.id.spinner2);
            spinner2.setAdapter(adapter2);
    
    

    如图:
    在这里插入图片描述
    是不是简单了很多?

    最后我们也可以添加监视器,显示我们选择的选项:

      spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    //选择了不同的选项,调用这个
                    Toast.makeText(MainActivity.this,ss[position],Toast.LENGTH_SHORT).show();
                }
    
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                    //在下拉选项种选择了本来选的东西,也就是说没改变选项,调用这个
    
                }
            });
    

    这样我们就完成了对下拉列表的新建。
    整体代码如下:

    package com.example.test_spinner;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.BaseAdapter;
    import android.widget.Spinner;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
    
        private String[] ss=new String[]{
          "北京",
          "上海",
          "深圳"
        };
        private List<String> list =new ArrayList<>();
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            list.add("java");
            list.add("cpp");
    
            Spinner spinner=findViewById(R.id.spinner);
            BaseAdapter adapter =new MyAdapter();//adapter适配器
            spinner.setAdapter(adapter);
    
            //可以监听器看看
            spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    //选择了不同的选项,调用这个
                    Toast.makeText(MainActivity.this,list.get(position),Toast.LENGTH_SHORT).show();
                }
    
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                    //在下拉选项种选择了本来选的东西,也就是说没改变选项,调用这个
    
                }
            });
    
            //第二种方法
            ArrayAdapter<String> adapter2=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item ,ss);
            Spinner spinner2=findViewById(R.id.spinner2);
            spinner2.setAdapter(adapter2);
            spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    //选择了不同的选项,调用这个
                    Toast.makeText(MainActivity.this,ss[position],Toast.LENGTH_SHORT).show();
                }
    
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                    //在下拉选项种选择了本来选的东西,也就是说没改变选项,调用这个
    
                }
            });
    
        }
        private class MyAdapter extends BaseAdapter{
    
            @Override
            public int getCount() {
                //return ss.length;
                return list.size();
            }
    
            @Override
            public Object getItem(int position) {
                return null;
            }
    
            @Override
            public long getItemId(int position) {
                return 0;
            }
    
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                TextView textView=new TextView(MainActivity.this);
               //textView.setText(ss[position]);
                textView.setText(list.get(position));
                return textView;
            }
        }
    }
    
    

    记得点个赞再走呐!!
    参考自:尚学堂

    展开全文
  • 单选按钮,高级输入,高级滑块,下拉菜单等 可用平台 平台 版 支持的 安卓 MonoAndroid10.0 :white_heavy_check_mark: 安卓 安卓90 :white_heavy_check_mark: 安卓 安卓安卓81 :cross_mark: 的iOS ...
  • android下拉列表框

    千次阅读 2012-12-02 20:03:20
    这次的话就使用这个下拉列表框做一个城市和区域联动的小例子,数据的话简单起见就弄成静态的。就不先扯淡了。 1.先来看下下拉列表框的标签 android:id="@+id/city" android:prompt="@string/city_label" an
  • 具有多选功能的下拉列表框

    热门讨论 2012-07-26 11:49:00
    实现了一个可以多选的下拉列表框下拉列表是一个checkboxlist,通过用户控件实现
  • 常用的表单组件中,比较复杂的是选择类的组件,这里可以使用以下的组件实现:单选,多选,下拉列表,日期选择,时间选择的功能。 一、单选,多选: <LinearLayout xmlns:android=...
  • Android下拉列表框使用

    千次阅读 2014-05-11 17:19:45
    这次的话就使用这个下拉列表框做一个城市和区域联动的小例子,数据的话简单起见就弄成静态的。就不先扯淡了。 1.先来看下下拉列表框的标签 1 Spinner 2  android:...
  • Android 自定义控件+下拉选择实现

    千次阅读 2019-07-15 11:00:13
    自定义控件+下拉选择实现 当系统自带的控件不能满足我们的需求,而我们又会经常使用到,这个时候我们就可以自定义控件。下拉框是我们在做项目中经常会需要用到的。 上图就是一个自定义的控件 点击显示下拉框进行...
  • OnCheckedChangeListener(处理用户在选中单选按钮的选项时触发)RadioGroup rg = ( RadioGroup) findById(new OnCheckedChangeListener(){Public void OnCheckedChanged (RadioGroup group, int checked){……}});...
  • 最近在项目中使用android原生的Spinner发现其显示效果没有想象中的好,于是就动手写了一个popuwindow的弹出框下拉列表,在popuwindow中主要使用了ListView自带的单选和多选模式。listview中使用自带的选择有两种...
  • 请大家伙多多指教: ... 请关注:ailiandeziwei ...1.单选框(RadioButton) package com.example.radiobutton; import android.os.Bundle; import android.app.Activity; import android.view.
  • 不过Android的列表选择并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择。Spinner 与 Gallery 都继承了AbsSpinner,AbsSpinner 继承了AdapterView,因此它也表现出AdapterView的特征:只要为AdapterView...
  • 布局:线性布局<LinearLayout>下嵌套着<...单选按钮:<RadioGroup><RadioButton>,<RadioButton>需要建立在<RadioGroup>下 状态开关按钮:<ToggleButton> 多选按...
  • 使用时直接写属性名即可 复选框 与单选框一致,把type属性值换成checkbox即可 下拉列表:由+组合而成 去过的城市: 重庆 武汉 * 北京 上海 深圳 运行出一下界面: 注 size属性:下拉列表所展示的option数 multiple...
  • Android下拉列表组件

    千次阅读 2015-04-19 10:49:29
    ListView—列表 Spinner——下拉列表框

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,757
精华内容 1,502
关键字:

android下拉列表单选框