1. 项目涉及到的技术点
- Spinner的使用
- 如何监听Spinner的点击事件
2. 项目运行截图
3. 具体代码实现
- activity_main.xml布局
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat 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:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/my_light_primary"
app:title="下拉菜单使用"
app:titleTextColor="@color/white" />
<TextView
android:id="@+id/tv_category_name"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_margin="10dp"
android:background="#f5f5f5"
android:gravity="center"
android:hint="下拉菜单使用"
android:textColor="#FF3D00"
android:textSize="17sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="请选择分类"
android:textColor="#999999"
android:textSize="17sp" />
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:entries="@array/category_list" />
</androidx.appcompat.widget.LinearLayoutCompat>
- android:entries=“@array/category_list” 所需要的数据源,如下图所示
在res->values->新建->array.xml,然后把下面的代码复制黏贴即可
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="category_list">
<item >新品推荐</item>
<item >招牌爆款</item>
<item >主厨推荐</item>
<item >开胃前菜</item>
<item >美味主食</item>
<item >美味甜品</item>
<item >鲜榨果品</item>
<item >蔬菜沙拉</item>
<item >轻食小吃</item>
</string-array>
</resources>
- MainActivity具体代码实现如下
public class MainActivity extends AppCompatActivity {
private TextView tv_category_name;
private Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
tv_category_name = findViewById(R.id.tv_category_name);
spinner = findViewById(R.id.spinner);
//spinner点击事件
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
//获取spinner的值
String categoryName = spinner.getSelectedItem().toString();
//设置TextView的值
tv_category_name.setText(categoryName);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
}