今天在看spinner相关的代码时候发现,当我们在清单文件想兼容2.3,会发现spinner的样式和平常不一样。
<uses-sdk
android:minSdkVersion="10"
/>
如果是我们平常写的,都是这种
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="21"
/>
开始看大神的博客说是theme在影响,可以我换了不同的主题并没有改变,可能这个才是最终的原因吧。下面介绍:
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
//main代码
Spinner spinner = (Spinner) findViewById(R.id.spinner);
String[] str = {"中国","日本","法国","俄罗斯","德国"};
<span style="white-space:pre"> </span>//没一个item的布局,这里是系统的,
ArrayAdapter<String> mAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item,str);
//下拉框的样式
<span style="white-space:pre"> </span>mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
<span style="white-space:pre"> </span>//设置提示,在sdk10 可以看到上面的提示信息,
spinner.setPromptId(R.string.name);
<span style="white-space:pre"> </span>//绑定适配器
spinner.setAdapter(mAdapter);
<span style="white-space:pre"> </span>spinner.getPrompt(); //获取提示信息
监听方法
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
<span style="white-space:pre"> </span>//方法一
String ss = mAdapter.getItem(position);
Log.i("123", ss);
<pre name="code" class="java"><span style="white-space:pre"> </span>//方法一
String ss2 = (String) parent.getItemAtPosition(position);Log.i("123", ss2);}@Overridepublic void onNothingSelected(AdapterView<?> parent) {//当数据源为空时 会调用这个方法}});