Android中spinner自定义样式


向在给ListView、 ExpandableListView这样组件自定义样式的时候,在layout目录下直接定义一个以布局layout(LinnearLayout/ReativeLayout..)打头的标签就可以; 但在给Spinner自定义样式的时候出现了问题,adapter.setDropDownViewResource(R.layout.myweather_citylist);  该标签不能是layout打头,如下面是myweather_citylist.xml文件中的内容:

<?xml version="1.0" encoding="utf-8"?>

<TextView

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/weather_cityname_textview"

    android:layout_width="fill_parent"

    android:layout_height="35dip"

    android:textColor="#FF0000"

    android:text="yaneryaneryaneryaner

    android:textSize="20dip"

    android:textStyle="bold"

    style="?android:attr/spinnerDropDownItemStyle">

</TextView>

 

在使用的时候需要注意。而且adpter适配器也不能自定义,否则就不会出来效果,而是直接将定义好的xml文件引入到setDropDownViewResource中即可。  改变样式的话也只能在textView上下功夫了。  目前水平感觉就是这样,估计也有其他的替换方法O(∩_∩)O~

 

 

 

下面是一个完整的小示例:

    ---String.xml

       <?xml version="1.0" encoding="utf-8"?>

<resources>

    <string name="spinner_promat">select a choose: </string>

</resources>

 

 

----spinner中的每一item项

<?xml version="1.0" encoding="utf-8"?>

<TextView

  xmlns:android="http://schemas.android.com/apk/res/android"

  android:orientation="vertical"

  android:layout_width="match_parent"

  android:layout_height="match_parent"

  android:text="spinner item项">

</TextView>

 

 

 

----测试Activity对应的布局样式

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

  xmlns:android="http://schemas.android.com/apk/res/android"

  android:orientation="vertical"

  android:layout_width="match_parent"

  android:layout_height="match_parent">

    <Spinner 

    android:id="@+id/mSpinner_comp"

    android:layout_width="fill_parent"

    android:layout_height="50dip"

    android:prompt="@string/spinner_promat" <!-- 注意这里prompt的标题必须在string中定义,不能直接写在这里面-->
    />

</LinearLayout>

 

 

 

---测试Activity

public class MspinnerTestActivity extends Activity {

 

    protected void onCreate(Bundle savedInstanceState){

       super.onCreate(savedInstanceState);

       

       setContentView(R.layout.spinner_layout);

       

       init();

    }

 

    private void init() {

       Spinner mSpinner = (Spinner) findViewById(R.id.mSpinner_comp);

       ArrayAdapter<Object> adapter = new ArrayAdapter<Object>(this, android.R.layout.simple_spinner_item, new String[]{"Yaner", "老婆"});

       adapter.setDropDownViewResource(R.layout.spinner_item_stypelayout);
//只需在这里设置一句即可setDropDownViewResource
       mSpinner.setAdapter(adapter);

    }

}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值