Spinner
<!-- entries用于指定要显示的列表 -->
<Spinner
android:id="@+id/spinner1"
android:entries="@array/spinner_array"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<!-- spinnerMode用于指定要显示的模式
prompt用于指定列表的标题
-->
<Spinner
android:id="@+id/spanner2"
android:prompt="@string/spinner_title"
android:entries="@array/spinner_array"
android:layout_width="match_parent"
android:spinnerMode="dialog"
android:layout_height="wrap_content" />
<Spinner
android:id="@+id/spanner3"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 关联布局文件
setContentView(R.layout.activity_main);
mSpinner = (Spinner) findViewById(R.id.spinner1);
mSpinner3 = (Spinner) findViewById(R.id.spanner3);
// 使用适配器动态添加
data = new String[] { "图1", "图2", "图3" };
mySpinnerAdapt = new MySpinnerAdapt();
mSpinner3.setAdapter(mySpinnerAdapt);
mSpinner3.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
Log.e("自定义选中了", data[position]);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO 所选择的与当前的不一样才会触发
String result = parent.getItemAtPosition(position).toString();
Log.e("选中了", result);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO 当列表为空时才会调用此方法
}
});
}
class MySpinnerAdapt extends BaseAdapter {
@Override
public int getCount() {
return data.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View inflate = getLayoutInflater().inflate(R.layout.spinner_item,
null);
TextView textView = (TextView) inflate.findViewById(R.id.tv_item);
textView.setText(data[position]);
return inflate;
}
}
class MyClick implements View.OnClickListener {
@Override
public void onClick(View v) {
//Log.e("点击了", data[position]);
}
}