**activity_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:layout_width="match_parent" **框的宽度**
android:layout_height="wrap_content" 框的高度
android:layout_margin="30dp" 控件外边距为30dp
android:text="你来自于那个省?" 设置文本的内容
android:textSize="25sp" 字体的大小
android:textColor="@color/colorAccent"/> 字体颜色
<Spinner
android:layout_width="300dp" 设宽
android:layout_height="wrap_content" 设高
android:id="@+id/spinner_pro" 给个id,之后会用到的
android:layout_marginLeft="30dp" 左边距
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:text="你来自于哪个城市?"
android:textSize="25sp"
android:textColor="@color/colorAccent"/>
<Spinner
android:layout_width="300dp"
android:layout_height="wrap_content"
android:id="@+id/spinner_city"
android:layout_marginLeft="30dp"
/>
<AutoCompleteTextView 编辑框自动补齐文字
android:layout_width="300dp"
android:layout_height="wrap_content"
android:textSize="22sp"
android:textColor="@color/colorAccent"
android:layout_margin="30dp"
android:id="@+id/autotext"
/>
布局:框一般会涉及宽、高、边距。文字会涉及内容、大小、颜色
</LinearLayout>va
下面是Java文件
**mainactivity.java**
package com.ioc18.spinner_test;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
Spinner Spinner_Pro,Spinner_City;
AutoCompleteTextView AutoText; 首先声明三个类
String[] String_Pro={"广东省","广西省","福建省","海南省","浙江省","江苏省",
"湖南省","湖北省","安徽省","江西省","山东省","河南省",
"山西省","河北省","黑龙江","辽宁省","吉林省","内蒙古",
"新疆","西藏","宁夏","青海省","台湾省","甘肃省",
"北京","天津","重庆","四川省","云南省","上海"};
ArrayList arrayList = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); oncreate的标准语句
Spinner_Pro = findViewById(R.id.spinner_pro);
Spinner_City = findViewById(R.id.spinner_city);
AutoText = findViewById(R.id.autotext);
Java用findviewbyid对布局文件中的控件进行绑定和关联
for(int i =0 ;i< String_Pro.length ; i++){
arrayList.add(String_Pro[i]);
}
想要用适配器就要用arraylist,而arrarylist需要sting_pro赋值使用
ArrayAdapter arrayAdapter = new ArrayAdapter<String>(
MainActivity.this,
android.R.layout.simple_spinner_item,
arrayList);
初始化适配器,第一个是当前activity,第二给是布局文件,第三给是术语
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 添加监听器
Spinner_Pro.setAdapter(arrayAdapter);
Spinner_Pro.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, "我来自于"+String_Pro[position], 通过位置下标显示数组里的内容 Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
ArrayAdapter<CharSequence> Adapter_City = ArrayAdapter.createFromResource(
MainActivity.this,R.array.city,android.R.layout.simple_spinner_item);
初始化第二个适配器adapter_city
Adapter_City.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);/* 将ArrayAdapter 添加Spinner 对象中 */
Spinner_City.setAdapter(Adapter_City);
/* 下拉菜单弹出的内容选项被选中事件处理 */
ArrayAdapter<CharSequence> Adapter_glass = ArrayAdapter.createFromResource(
MainActivity.this,
R.array.glass,
android.R.layout.simple_list_item_1
);
AutoText.setAdapter(Adapter_glass);
}
}
`
array.xml文件(通过系统调用自身创建的内容)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="city">
<item>韶关</item>
<item>广州</item>
<item>深圳</item>
<item>珠海</item>
<item>中山</item>
<item>茂名</item>
<item>云浮</item>
<item>潮州</item>
</string-array>
<string-array name="glass">
<item>18物联网1班</item>
<item>18物联网2班</item>
<item>18物联网3班</item>
<item>18物联网4班</item>
<item>18通信工程1班</item>
<item>18通信工程2班</item>
<item>18通信工程3班</item>
<item>17通信工程1班</item>
<item>17通信工程2班</item>
<item>17通信工程3班</item>
</string-array>
</resources>