android studio 菜鳥實戰項目 之 spnner實現


1.簡單實現效果圖:

activity_main.xml文件:

<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Spinner>


MainActivity.java文件:
public class MainActivity extends AppCompatActivity  {
private TextView textView;
private Spinner spinner;
private List<String> list;
private ArrayAdapter<String>adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//實例化
textView=(TextView)findViewById(R.id.text);
spinner=(Spinner)findViewById(R.id.spinner);
textView.setText("您選擇的城市北京");
//設置數據源
list=new ArrayList<String>();
list.add("北京");
list.add("上海");
list.add("廣州");
list.add("深圳");
//新建arrayAdapter,android.R.layout.simple_spinner_item是調用android studio中默認的樣式
adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
//adapter設置一個下拉列表
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//spinner加載適配器
spinner.setAdapter(adapter);
//實現監聽事件
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String cityName=adapter.getItem(position);
//String cityName=list.get(position);
textView.setText("您選擇的城市是"+cityName);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {

}
});
}
}

2.自定義實現:添加圖標

 

mainActivity.xml文件:

<TextView
android:textSize="25sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text" />
<Spinner
android:layout_marginTop="10dp"
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</Spinner>

新添加的item.xml文件:
<ImageView
android:id="@+id/imge"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_marginTop="5dp"
android:layout_marginLeft="30dp"
android:id="@+id/city"
android:textSize="25sp"
android:textColor="#ff0000"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

mainActivity.java文件:
public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener{
private TextView textView;
private Spinner spinner;
private List<Map<String,Object>> dataList;
private SimpleAdapter adapter;
private String[] cityName={"上海","廣州","北京","深圳","杭州","南京"};
private int[] icon={R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//實例化
textView=(TextView)findViewById(R.id.text);
textView.setText("您選擇的城市是上海");
spinner=(Spinner)findViewById(R.id.spinner);
//准備數據源
dataList=new ArrayList<>();
//新建適配器,特別要注意對from和to兩個變量的定義
adapter=new SimpleAdapter(this,getData(),R.layout.item,new String[]{"image","city"},new int[]{R.id.imge,R.id.city});
//加載適配器
spinner.setAdapter(adapter);
//實現監聽事件
spinner.setOnItemSelectedListener(this);
}
private List<Map<String,Object>> getData(){
for(int i=0;i<cityName.length;i++){
Map<String,Object>map=new HashMap<>();
map.put("image",icon[i]);
map.put("city",cityName[i]);
dataList.add(map);
}
return dataList;
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String city= dataList.get(position).toString();
textView.setText("您選擇的城市是"+city);
Toast.makeText(this,"您選擇的城市是"+city,Toast.LENGTH_SHORT).show();

}
@Override
public void onNothingSelected(AdapterView<?> parent) {

}
}

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM