Android中使用Spinner實(shí)現(xiàn)下拉列表功能
Spinner
Spinner是一個(gè)列表選擇框,會(huì)在用戶選擇后,展示一個(gè)列表供用戶進(jìn)行選擇。Spinner是ViewGroup的間接子類,它和其他的Android控件一樣,數(shù)據(jù)需要使用Adapter進(jìn)行封裝。
1,Demo展示圖片

2,布局代碼
//(layout)activity_main
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.test.spinner.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:textSize="20sp"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="今年的常規(guī)賽MVP:"/>
<TextView
android:id="@+id/text"
android:textSize="20sp"
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<Spinner
android:visibility="gone"
android:id="@+id/spinner"
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Spinner>
</LinearLayout>
-------------------------------------------------------------------
//(layout)item
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<ImageView
android:id="@+id/imageView"
android:layout_width="80dp"
android:layout_height="80dp"/>
<TextView
android:id="@+id/textView"
android:layout_marginLeft="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
3,Activity代碼
//MainActivity
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.test.spinner.R.id.simpleAdapter;
public class MainActivity extends AppCompatActivity {
private Context mContext = MainActivity.this;
private Spinner mSpinner;
private ArrayAdapter<String> mArrayAdapter;
private TextView mTextView;
private SimpleAdapter mSimpleAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
}
private void initView(){
mSpinner = (Spinner) findViewById(R.id.spinner);
mTextView = (TextView) findViewById(R.id.text);
}
private void initData(){
// 設(shè)置數(shù)據(jù)集
List<String> list = new ArrayList<>();
list.add("哈登");
list.add("萊昂納德");
list.add("詹姆斯");
list.add("威斯布魯克");
List<Map<String ,Object>> maps = new ArrayList<>();
int[] icon = {R.mipmap.pic1 , R.mipmap.pic2, R.mipmap.pic3, R.mipmap.pic4};
String[] iconName = {"哈登" , "萊昂納德" , "詹姆斯" , "威斯布魯克"};
// 設(shè)置適配器
mArrayAdapter = new ArrayAdapter<>(mContext ,
android.R.layout.simple_spinner_item , list);
mArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSimpleAdapter = new SimpleAdapter(mContext,
maps , R.layout.item , new String[]{"image" , "text"} , new int[]{R.id.imageView ,R.id.textView});
for(int i = 0 ; i < icon.length ; i++){
Map<String ,Object> map = new HashMap<>();
map.put("image", icon[i]);
map.put("text" , iconName[i]);
maps.add(map);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main , menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.arrayAdapter:
mSpinner.setVisibility(View.VISIBLE);
mSpinner.setAdapter(mArrayAdapter);
// 設(shè)置監(jiān)聽器
mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
mTextView.setText(mArrayAdapter.getItem(position));
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
break;
case simpleAdapter:
mSpinner.setVisibility(View.VISIBLE);
mSpinner.setAdapter(mSimpleAdapter);
// 設(shè)置監(jiān)聽器
mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
mTextView.setText(mSimpleAdapter.getItem(position)+"");
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
}
以上所述是小編給大家介紹的Android中使用Spinner實(shí)現(xiàn)下拉列表功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Android使用Spinner控件實(shí)現(xiàn)下拉列表的案例
- Android控件Spinner實(shí)現(xiàn)下拉列表及監(jiān)聽功能
- Android UI控件之Spinner下拉列表效果
- Android自定義單選多選下拉列表的實(shí)例代碼
- Android下拉列表選項(xiàng)框及指示箭頭動(dòng)畫
- Android中PopuWindow實(shí)現(xiàn)下拉列表實(shí)例
- Android編程實(shí)現(xiàn)多列顯示的下拉列表框Spinner功能示例
- Android仿美團(tuán)淘寶實(shí)現(xiàn)多級(jí)下拉列表菜單功能
- 詳解Android的Socket通信、List加載更多、Spinner下拉列表
- Android下拉列表框Spinner使用方法詳解
相關(guān)文章
Android在kts中使用navigation及Args的方法
在Android項(xiàng)目中使用Kotlin腳本(kts)替代Groovy配置navigation和Args,需添加相關(guān)依賴,并在build.gradle中進(jìn)行配置,文章詳細(xì)介紹了如何在kts中使用navigation進(jìn)行頁(yè)面導(dǎo)航和參數(shù)傳遞,介紹了使用Bundle和Safe Args兩種方式安全傳遞參數(shù)2024-10-10
Android Studio使用ButterKnife和Zelezny的方法
這篇文章主要為大家詳細(xì)介紹了Android Studio使用ButterKnife和Zelezny的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
android使用PopupWindow實(shí)現(xiàn)頁(yè)面點(diǎn)擊頂部彈出下拉菜單
這篇文章主要給大家介紹android使用PopupWindow實(shí)現(xiàn)頁(yè)面點(diǎn)擊頂部彈出下拉菜單,實(shí)現(xiàn)此功能主要通過(guò)PopupWindow方法,代碼也很簡(jiǎn)單,需要的朋友可以參考下2015-08-08
android編程實(shí)現(xiàn)局部界面動(dòng)態(tài)切換的方法
這篇文章主要介紹了android編程實(shí)現(xiàn)局部界面動(dòng)態(tài)切換的方法,以實(shí)例形式較為詳細(xì)的分析了Android局部切換的布局及功能實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
AndroidStudio 實(shí)現(xiàn)加載字體資源的方法
這篇文章主要介紹了AndroidStudio 實(shí)現(xiàn)加載字體資源的方法的相關(guān)資料,這里提供了詳細(xì)的實(shí)現(xiàn)方法,需要的朋友可以參考下2016-11-11
Android平臺(tái)下輕量級(jí)http網(wǎng)絡(luò)傳輸庫(kù)
這篇文章主要介紹了Android平臺(tái)下輕量級(jí)http網(wǎng)絡(luò)傳輸庫(kù)的相關(guān)資料,需要的朋友可以參考下2016-01-01
Android實(shí)現(xiàn)仿美團(tuán)、順豐快遞數(shù)據(jù)加載效果
本片文章教給大家用Android實(shí)現(xiàn)美團(tuán)和順豐快遞APP的數(shù)據(jù)加載的動(dòng)畫效果,有興趣的朋友跟著學(xué)習(xí)嘗試下吧。2017-12-12
Android開發(fā)優(yōu)化之Apk瘦身優(yōu)化指南
隨著業(yè)務(wù)快速發(fā)展,各種業(yè)務(wù)功能上線,版本不斷迭代,apk體積也越來(lái)越大,下面這篇文章主要給大家介紹了關(guān)于Android開發(fā)優(yōu)化之Apk瘦身優(yōu)化的相關(guān)資料,需要的朋友可以參考下2022-05-05

