Adapter之spinner

前言:

在写代码当中有时候会用到下拉列表,下面我们讲一下spinner

正文:

因为比较简单,和之前的listView很像,所以直接上代码

 1 <Spinner
 2         android:layout_width="match_parent"
 3         android:layout_height="wrap_content"
 4         android:id="@+id/spinner">
 5 
 6     </Spinner>
 7     <TextView
 8         android:layout_width="wrap_content"
 9         android:layout_height="wrap_content"
10         android:text="苏州"
11         android:textSize="20sp"
12         android:id="@+id/textview"
13         android:layout_below="@+id/spinner"
14         android:layout_centerHorizontal="true"
15         android:layout_marginTop="155dp" />

TextView是为了当你选择一个城市时会显示你所选择的城市,如:

下面来Java代码:

 1 package com.example.administrator.testmyadapter;
 2 
 3 import android.support.v7.app.AppCompatActivity;
 4 import android.os.Bundle;
 5 import android.view.LayoutInflater;
 6 import android.view.View;
 7 import android.view.ViewGroup;
 8 import android.widget.AdapterView;
 9 import android.widget.ArrayAdapter;
10 import android.widget.BaseAdapter;
11 import android.widget.ListView;
12 import android.widget.Spinner;
13 import android.widget.TextView;
14 
15 import java.util.ArrayList;
16 import java.util.List;
17 
18 public class MainActivity extends AppCompatActivity {
19     private Spinner spinner;
20     private List<String> list;
21     private ArrayAdapter<String> myAdapter;
22     private TextView textView;
23 
24     @Override
25     protected void onCreate(Bundle savedInstanceState) {
26         super.onCreate(savedInstanceState);
27         setContentView(R.layout.activity_main);
28         spinner = (Spinner) findViewById(R.id.spinner);
29         textView = (TextView) findViewById(R.id.textview);
30         list = new ArrayList<String>();
31         list.add("苏州");
32         list.add("南京");
33         list.add("广州");
34         list.add("南昌");
35         list.add("深圳");
36         list.add("无锡");
37         list.add("上海");
38         list.add("天津");
39         list.add("重庆");
40         list.add("成都");
41         list.add("宁波");
42 
43         spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
44             @Override
45             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
46                 textView.setText(list.get(position));
47             }
48 
49             @Override
50             public void onNothingSelected(AdapterView<?> parent) {
51 
52             }
53         });
54         myAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
55         spinner.setAdapter(myAdapter);
56     }
57 
58 }

初始化的东西简单就不说,下面讲一下之前没讲过的监听器,spinner设置监听器(setOnItemSelectedListener),用内部类方法,并且让重写方法onItemSelected方法实现把选择的城市添加到textView中,第46行代码即可

 

posted @ 2020-02-13 12:36  东功  阅读(302)  评论(0编辑  收藏  举报