据说程序员是最爱学习的群体,IT男都知道,这个行业日新月异,必须不断地学习新知识,不断地为自己注入新鲜的血液,才能使自己跟上技术的步伐。
本讲内容:Spinner 下拉列表
示例一:
下面是res/layout/activity_main.xml 布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/id_city"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="城市:"
android:textSize="25sp"/>
<Spinner
android:id="@+id/id_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
下面是MainActivity主界面文件:
public class MainActivity extends Activity {
private TextView city;
private Spinner spinner;
List<String> dataList;
ArrayAdapter<String> adapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
}
/**
* 初始化控件
*/
private void initViews() {
city=(TextView) findViewById(R.id.id_city);
spinner=(Spinner) findViewById(R.id.id_spinner);
adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,getData());
//设置spinner的UI格式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,int position, long id) {
//String cityName=dataList.get(position);
String cityName=adapter.getItem(position);
city.setText(cityName);
}
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
/**
* 数据源
*/
private List<String> getData(){
dataList=new ArrayList<String>();
dataList.add("北京");
dataList.add("上海");
dataList.add("广州");
dataList.add("深圳");
return dataList;
}
}
示例二:自定义布局
下面是res/layout/item.xml 布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/id_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:src="@drawable/pic1"/>
<TextView
android:id="@+id/id_city"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@id/id_image"
android:text="None"/>
</RelativeLayout>
下面是MainActivity.java主界面文件:
public class MainActivity extends Activity {
private TextView city;
private Spinner spinner;
private List<Map<String,Object>> dataList;
private SimpleAdapter adapter;
int[] drawable={R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4};
String[] name={"北京","上海","广州","深圳"};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
}
/**
* 初始化控件
*/
private void initViews() {
city=(TextView) findViewById(R.id.id_city);
spinner=(Spinner) findViewById(R.id.id_spinner);
dataList = new ArrayList<Map<String, Object>>();
adapter=new SimpleAdapter(this, getData(), R.layout.item, new String[] {"image","name"},
new int[] {R.id.id_image,R.id.id_city});
//设置spinner的UI格式
adapter.setDropDownViewResource(R.layout.item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,int position, long id) {
//包括获取图片的id
// String cityName=adapter.getItem(position)+"";
// String cityName=dataList.get(position)+"";
TextView name=(TextView) view.findViewById(R.id.id_city);
String cityName=name.getText().toString();
city.setText(cityName);
}
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
/**
* 数据源
*/
private List<Map<String,Object>> getData(){
for(int i=0;i<drawable.length;i++){
Map<String,Object> map=new HashMap<String, Object>();
map.put("image", drawable[i]);
map.put("name", name[i]);
dataList.add(map);
}
return dataList;
}
}
Take your time and enjoy it