Android Studio实现Spinner下拉列表

news/2024/11/17 7:19:32/

效果图
在这里插入图片描述
点击下拉列表
在这里插入图片描述
点击某一个下拉列表
在这里插入图片描述
MainActivity

package com.example.spinneradapterpro;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.Toast;import com.example.spinneradapterpro.adapter.SpinnerUserAdapter;
import com.example.spinneradapterpro.bean.UserSpinnerBean;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {private Spinner mSpinner;private List<UserSpinnerBean> mUserSpinnerBeanList = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mSpinner = findViewById(R.id.sp);for (int i = 0; i < 50; i++) {mUserSpinnerBeanList.add(new UserSpinnerBean(R.drawable.avatar, "下拉列表" + i));}//可以将自己想要加入spinner的文件加到list中mSpinner.setAdapter(new SpinnerUserAdapter(mUserSpinnerBeanList, MainActivity.this));mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {Toast.makeText(MainActivity.this, mUserSpinnerBeanList.get(i).getUserName(), Toast.LENGTH_SHORT).show();}@Overridepublic void onNothingSelected(AdapterView<?> adapterView) {}});}
}

UserSpinnerBean

package com.example.spinneradapterpro.bean;public class UserSpinnerBean {private int mImage;private String mUserName;public UserSpinnerBean(int image, String userName) {mImage = image;mUserName = userName;}public int getImage() {return mImage;}public void setImage(int image) {mImage = image;}public String getUserName() {return mUserName;}public void setUserName(String userName) {mUserName = userName;}
}

SpinnerUserAdapter

package com.example.spinneradapterpro.adapter;import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import com.example.spinneradapterpro.R;
import com.example.spinneradapterpro.bean.UserSpinnerBean;import java.util.List;public class SpinnerUserAdapter extends BaseAdapter {private List<UserSpinnerBean> mUserSpinnerBeans;private Context mContext;public SpinnerUserAdapter(List<UserSpinnerBean> userSpinnerBeans, Context context) {mUserSpinnerBeans = userSpinnerBeans;mContext = context;}@Overridepublic int getCount() {return mUserSpinnerBeans == null ? 0 : mUserSpinnerBeans.size();}@Overridepublic Object getItem(int i) {return getItem(i);}@Overridepublic long getItemId(int i) {return i;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {ViewHolder viewHolder;if (view == null) {view = View.inflate(mContext, R.layout.spinner_adapter_item, null);viewHolder = new ViewHolder(view);view.setTag(viewHolder);} else {viewHolder = (ViewHolder) view.getTag();}//UserSpinnerBean userSpinnerBean = (UserSpinnerBean) getItem(i);UserSpinnerBean userSpinnerBean = mUserSpinnerBeans.get(i);viewHolder.mImage.setImageResource(R.drawable.avatar);viewHolder.mUserName.setText(userSpinnerBean.getUserName());return view;}staticclass ViewHolder {View mView;ImageView mImage;TextView mUserName;ViewHolder(View view) {this.mView = view;this.mImage = (ImageView) view.findViewById(R.id.img);this.mUserName = (TextView) view.findViewById(R.id.userName);}}
}

activity_main 下拉列表

<?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"tools:context=".MainActivity"><Spinnerandroid:id="@+id/sp"android:layout_width="200dp"android:layout_height="wrap_content" /></LinearLayout>

spinner_adapter_item 列表显示内容格式

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ImageViewandroid:id="@+id/img"android:layout_width="50dp"android:layout_height="50dp" /><TextViewandroid:id="@+id/userName"android:layout_width="wrap_content"android:layout_height="wrap_content" />
</LinearLayout>

http://www.ppmy.cn/news/1027993.html

相关文章

计算图像哈希SHA-512

1、MATLAB实现 计算图像哈希值SHA-512,在文献[1]提到的算法如下: % Example Code: Create an MD5 crypto-hash of an arbitrary string, "str" % Main class of interest: System.Security.Cryptography.HashAlgorithm% Example String to hash with MD5 %…

编码加强:整理出版的书籍代码、持续研发软件(提升编码能力、打造独立平台)

整理出版的书籍代码 使用版本控制工具&#xff1a;使用Git等版本控制工具&#xff0c;可以方便地管理代码版本&#xff0c;记录每个版本的修改和变化&#xff0c;确保代码的稳定性和可维护性。 编写清晰的注释&#xff1a;编写清晰的注释可以方便读者理解代码的逻辑和功能&…

力扣 518. 零钱兑换 II

题目来源&#xff1a;https://leetcode.cn/problems/coin-change-ii/description/ C题解&#xff08;来源代码随想录&#xff09;&#xff1a; 这是一道典型的背包问题&#xff0c;一看到钱币数量不限&#xff0c;就知道这是一个完全背包。但本题和纯完全背包不一样&#xff0c…

mysql数据库第十二课------mysql语句的拔高2------飞高高

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

第一百二十七天学习记录:我的创作纪念日

机缘 今天收到CSDN官方的来信&#xff0c;想想也可以对我前面的学习记录进行一个总结。 关于来到CSDN的初心&#xff0c;也就是为了让自己养成一个良好的学习总结的习惯。这里要感谢我C语言视频教程的老师&#xff0c;是他建议学生们在技术博客中进行记录。对于技术博客&…

选择最适合自己的笔记本

选择最适合自己的笔记本电脑 一、了解笔记本品牌一线品牌准一线品牌二线品牌三线品牌 二、笔记本入手渠道笔记本入手渠道 三、根据需求选择机型使用需求1.日常使用2.商务办公、财务3.轻度剪辑、ps4.代码5.创意设计6.游戏 四、笔记本电脑配置如何选1.cpu2.显卡&#xff08;GPU&a…

代码随想录算法训练营第十七天|110.平衡二叉树 ,257. 二叉树的所有路径 ,404.左叶子之和

110.平衡二叉树 110. 平衡二叉树 思路&#xff1a; 分别求出每个节点其左右子树的高度&#xff0c;然后如果差值小于等于1&#xff0c;则返回当前二叉树的高度&#xff0c;否则返回-1&#xff0c;表示已经不是二叉平衡树了。 代码实现&#xff1a; 一棵高度平衡二叉树定义…

Python语言基础---选择判断循环结构详解

文章目录 &#x1f340;引言&#x1f340;if语句&#x1f340;if-else语句&#x1f340;if-elif-else语句&#x1f340;for循环&#x1f340;while循环 &#x1f340;引言 在Python编程语言中&#xff0c;选择判断和循环是两个非常重要的概念。它们可以让我们根据条件执行不同的…