Hello,本人小小白,聊的内容仅适合刚入门的童鞋们,我尽可能写的细一点!每天一小步,走出精彩人生!把大问题,拆成小问题,debug还是很容易滴!
我们 今天要get哪些东西呢?创建Spinner的另一种方式,并且我们今天要拿到选中的值哦!是不是很期待?(&–_--&)!
有图,不慌,我们先来看看今天的效果!(不小心暴露了,眼尖的同学一看就知道是作业!)

Android spinner 未选择 android spinner获取选中_java

Spinner的第一种内容创建方式就是将下拉框中的内容放在.XML 文件中,在我的上一篇博客已经详细讲过了,这里就不赘述了。我们在上次的基础上获取值哦(我把文字内容变了变,相信不会影响到聪明的你的)!
一、我们先来用内容放在.XML 文件中的写法试试水!第一件事当然是在.java 中获取到对应的id啦!还有一些重要的辅助变量!我相信这个难不倒你们!
private Spinner textSpinner;
    private String   getContent;
    private EditText textSpinnerEW;
textSpinner = findViewById(R.id.textSpinner);
        textSpinnerEW = findViewById(R.id.textSpinnerEW);
textSpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
            @Override
            /*public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

            }*/
            public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                  getContent = MainActivity.this.getResources().getStringArray(R.array.majorIn)[arg2];
                  textSpinnerEW.setText(getContent);
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
注意看看第三张图片注释部分和底下那行有啥区别。getStringArray(R.array.majorIn)中的majorIn是你自己写下拉列表内容的.xml文件名哦! textSpinnerEW.setText(getContent);是我为了在名为:textSpinnerEW 的EditView中显示写的,为了检测一下我们获取到spinner选中的值。写不写,看你的代码需求
嘻嘻,不难吧!
二、那我们看spinner内容的第二种写法!直接在.java 文件中定义数组,但是在获取内容的时候稍稍麻烦一点,需要数组适配器。

便于理解,我们先看一下前端代码:

<Spinner
        android:id="@+id/spMajor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="90dp"
        android:layout_marginLeft="50dp"
        android:spinnerMode="dialog" />

以下内容放在.java文件中

//先定义一个字符串数组,放下拉列表的内容!
    final String[] majorText ={"计算机科学与技术","信息安全","大数据","人工智能","自动化"};
    Spinner textSpinner = findViewById(R.id.textSpinner);
    EditText textSpinnerEW = findViewById(R.id.textSpinnerEW);
     //获取spinner中的值
     //也可以在.java 文件里设置prompt内容,可以看看上一篇文章是怎么设置的
        this.spMajor.setPrompt("请选择您的专业:");
        
        //创建一个数组适配器,存放内容为string 类型 ,majorText是我自己定义的字符数组!
        private ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,majorText);
 
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

		//为Spinner添加适配器
        spMajor.setAdapter(adapter);
        spMajor.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
             String strSpinner = "您选择的专业是:"+majorText[arg2];
            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });
这样就可以得到spinner选中的内容了!没有放将内容在Toast中显示的代码!相信没有代码你也可以的!
我们小小的总结一下。到目前我们干了这些事情:1.获取 用.xml存放内容 的spinner选中的内容,直接用setOnItemSelectedListener方法即可 ; 2.如果我们将内容以字符数组的形式写在.java 文件中,那么我们需要一个数组适配器,在用setOnItemSelectedListener方法!
三、我们来看看第三种方法,代码简单,适合以上两种写法
EditText textSpinnerEW2 = findViewById(R.id.textSpinnerEW2);
		Spinner textSpinner = findViewById(R.id.textSpinner);
		//获取内容
        String getContent2 = textSpinner.getSelectedItem().toString();
        //在名字为textSpinnerEW2的EditText中显示
        textSpinnerEW2.setText(getContent2);
但是只能用一次,如果更改一次都能获取到,需要将代码放到spinner选择事件之后!
我们用图来说明一下,什么叫只能用一次!当我们第二次更改spinner选择的内容时,1变了,但是2没变!

Android spinner 未选择 android spinner获取选中_Android spinner 未选择_02

好了,今天就聊到这里,小小白赶紧去吃晚饭!你吃晚饭了吗?(** _**)!